Se que debería ser sencillo, pero esque no se nada de ensamblador , hasta ahorita llevo la entrada y el almacenaje en pila, planeaba que al momento de hacer el pop hiciera la conversion, pero no e podido ! a ver si agluien me ayuda, hasta aorita esto es lo que tengo:
Código
pila segment stack "STACK" dw 4 DUP(0) pila ends data segment data ends code segment assume cs:code,ds:data,ss:pila inicio: mov ax, data ;un db es una palabra de 16 its mov ds, ax ;//cargar el segmento de codigo en memoria MOV AH,01h ;Le meto 1 a ah para que meta en al INT 21h ;Espera el teclado mov ah,0h ;limpio ah push ax ;lo meto en la pila MOV AH,01h INT 21h mov ah,0h push ax MOV AH,01h INT 21h mov ah,0h push ax MOV AH,01h INT 21h mov ah,0h push ax ;lo hice 4 veces, y ahora a hacer el pop ;POP pop ax ;Y ya no se que mas hacer! cmp ax,'a' ; una comparacion talvez? jz salt ; asi se hace la comparacion? salt proc near ;pero que pasa si no es una a? sub al,31h ; como ponerle el else ???? (o algo asi) mov dl,al mov ah,02h int 21h salt endp MOV AX, 4C00h ;halt dos dice que es la terminacion del programa INT 21h ;;int rebisa lo que esta en 21h. ;es la interrupcion de pantalla con la funcion 4c que es la de hald code ends end inicio ; que perdido estoy,ayudenme :(
EI: juntando mensajes.
Ninguna idea?
Ya estoy cerca de terminar, pero a ver si me resuelven esta duda,
yo realizo una comparacion con cmp, si es igual a la cadena, hago el salto a una etiqueta con el je y si no es igual salto hacia otra etiqueta con el jne, pero ahora, el problema esque como esta una etiqueta detras de otra, pues me hace el proceso seguido, ya se que estoy haciendo algo mal, pues no deberia suceder esto, pero esque no se como indicarle que despues de realizar la etiqueta vuelva a la linea de donde salto , intente hacerlo con call y proc, pero esque no me deja poner je call procedimiento :S ayuden a este novato porfa