Ensamblador - ensamblador

   
Vista:

ensamblador

Publicado por Fernanda (2 intervenciones) el 26/04/2010 17:46:07
Disculpen las molestias, estoy haciendo el codigo de convertir de mayuscula a minuscula en asm, pero no me imprime la cadena convertida aki les dejo mi codigo.

CADENAIMPR MACRO cad
MOV AH,9
LEA DX,cad
INT 21H

ENDM
LEER MACRO datos
MOV AH,0AH
LEA DX,datos
INT 21H
MOV BH,0
MOV BL,Longr
MOV Buffer[BX],24H
ENDM
IMPRCARAC MACRO carac

MOV AH,9
MOV AL,carac
MOV BH,0
MOV BL,04
MOV CX,1
INT 10H
ENDM
CARAC MACRO dato

MOV AH,9
MOV AL,dato
MOV BH,0
MOV BL,07
MOV CX,1
INT 10H
ENDM
limpiar MACRO
MOV AH,6
MOV CX,0
MOV DH,23
MOV DL,79
MOV BH,07
INT 10H
ENDM
STACK SEGMENT PARA 'stack'
DW 64 DUP(0)
STACK ENDS
DATA SEGMENT PARA 'data'
CAD1 DB 'Menu:$'
CAD2 DB 'F1 Escribir$'
CAD3 DB 'F2 Imprimir$'
CAD4 DB 'ESC Salir$'
CAD5 DB 'Elige opcion$'
MESO DB 'Ingresa cadena:$'
ren DB 0
col DB 0
cimpr db ?
CADENA LABEL BYTE
Longc DB 10
Longr DB 0
Buffer DB 20 DUP(20H)
DB '$'
DATA ENDS
CODE SEGMENT PARA 'code'
ASSUME DS:DATA,CS:CODE,SS:STACK
BEGIN PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX

menu:limpiar
call cursor
CADENAIMPR CAD1
call cursor
CADENAIMPR CAD2
call cursor
CADENAIMPR CAD3
call cursor
CADENAIMPR CAD4
call cursor
CADENAIMPR CAD5
call cursor
MOV AH,10H
INT 16H
CMP Ax,3B00h
JE pedir_cadena
CMP AX,3C00H
JE imprimir
CMP AX,011BH
JE salir
jmp menu


pedir_cadena:
call cursor
CADENAIMPR MESO
call cursor
LEER CADENA
JMP menu

imprimir:
call cursor
call CONVERT_MINUSCULAS
call cursor
jmp menu

salir:ret

BEGIN ENDP
cursor proc
mov ah,2
mov bh,0
mov dh,ren
mov dl,5
int 10h
inc dh
mov ren,dh
ret
cursor endp
cursor2 proc
mov ah,2
mov bh,0
mov dh,ren
mov dl,col
int 10h
inc dl
mov col,dl
ret
cursor2 endp
CONVERT_MINUSCULAS proc
mov col,5
LEA SI,Buffer
ETIQ: call cursor2
MOV BL,[SI]
CMP BL,24H
JE FIN
ADD BL,20H
IMPRCARAC BL
INC SI
JMP ETIQ
FIN:RET
CONVERT_MINUSCULAS endp
CODE ENDS
END BEGIN
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