Ensamblador - Simular palabras reservadas(Al escribir ciertas palabras, cambien de color)"MOV"

   
Vista:

Simular palabras reservadas(Al escribir ciertas palabras, cambien de color)"MOV"

Publicado por Mantixd surdo_51@hotmail.com (1 intervención) el 11/11/2013 23:49:58
Hola a todos mi intension no es que me hagan la tarea ni mucho menos solo quiero que me aconsejen pues tengo el codigo no se si a medias y no puedo terminarlo, lo que hago en el programa es que escribo una cadena en blanco con dup y despues creo otra cadena donde escribo la palabra que quiero que cambie de color, despues con el 01h escribo el caracter, despues uso el cmpsb para comparar la cadena escrita con la cadena que quiero que cambie de color y con REPE hago que la repita si son iguales y pues inicializo 2 variables iguales: y diferentes: que lanza si son iguales, lanza la 19h para imprimir cadena con color y pues ya la reemplaza con un color determinado. mi problema es que solo cambia de color 1 palabra y ya si escribo otra vez la misma palabra no me la cambia de color, y pues ahi estoy algo atorado si me pudieran aconsejar en que estoy mal o que me hace falta o simplemente que interrupciones usar seria de gran ayuda... les dejo el codigo completo para que lo chequen haber si me doy a entender mejor.

Programo en emu8086

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
.model tiny
.data
cadena db 10 dup (' '),'$'
carb   db "mov$"
.code
Inicializa: mov ax,@data
             mov ds,ax
             mov es,ax
 
mensaje macro
       mov ah,09h ;mostramos la cadena
       int 21h
endm
 
.startup
 
	mov cx,3
	lea di,cadena
	repite:
		mov ah,01h
		int 21h ;lee un caracter
		stosb ;pasa lo que ahy en al a la cadena
	loop repite
 
 
lea si,cadena
lea di,carb
mov cx,3
 
REPE cmpsb
 
jz iguales
;jmp diferentes
 
iguales:
         mov ah,19
         mov cx, 3
         mov bl, 1
         mov al, 1
         lea bp, cadena
         int 10h
 
 
;diferentes: mov ax,4c00h
 ;           int 21h
.exit
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder