0% encontró este documento útil (0 votos)
69 vistas7 páginas

Programa en Ensamblador: Nombre Inverso

Este documento presenta cuatro opciones de un menú principal para un programa en ensamblador: 1) abecedario, 2) símbolos numéricos, 3) ingresar un nombre, 4) salir. Detalla las subrutinas para cada opción, incluyendo imprimir letras en mayúsculas y minúsculas, números del 0 al 9, y pedir y mostrar un nombre completo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
69 vistas7 páginas

Programa en Ensamblador: Nombre Inverso

Este documento presenta cuatro opciones de un menú principal para un programa en ensamblador: 1) abecedario, 2) símbolos numéricos, 3) ingresar un nombre, 4) salir. Detalla las subrutinas para cada opción, incluyendo imprimir letras en mayúsculas y minúsculas, números del 0 al 9, y pedir y mostrar un nombre completo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

LENGUAJES DE INTERFAZ

Programa Menu

Docente: Rodríguez Mora Gonzalo

Ingeniería en sistemas computacionales


Grupo: XC

Alumno:
-Rojas Ramírez Raymundo.

Zacatepec, Morelos a 29 de octubre del 2022


Realice un programa en ensamblador que leas por teclado tu nombre completo y que la mitad de
tu nombre lo imprimas al revés y la otra mitad normal, utilice pilas y ciclos para este programa
EXTRN PROC1:FAR int 21h
EXTRN PROC2:FAR mov ah,9
EXTRN PROC3:FAR mov dx,offset op3
.Model Small int 21h
.Stack mov ah,9
.Data mov dx,offset cap
men db "MENU DE int 21h
OPCIONES",10,13,"$"
op db "[Link]",10,13,"$"
op1 db "[Link] N",10,13,"$"
op2 db "[Link] UN NOMBRE ",10,13,"$" mov cx,0
op3 db "[Link]",10,13,"$" mov ah,9
cap db "INGRESA LA OPCION mov dx,offset salto
DESEADA",10,13,"$" int 21h
salto db 10,13,"$" mov ah,8
estado db 0 int 21h
num db ? cmp al,49
.Code je opc
principal proc Far cmp al,50
Mov ax,@data;mov AX, seg datos je opc1
Mov ds,ax cmp al,51
;Cambiando la resolucion a la je opc2
pantalla cmp al,52
Mov ah,0 je fin2
Mov al,3
Int 10h opc:
inicio: CALL PROC1
mov ah,9 jne fin2
mov dx,offset men opc1:
int 21h CALL PROC2
mov ah,9 jne inicio
mov dx,offset op opc2:
int 21h CALL PROC3
mov ah,9 jne inicio
mov dx,offset op1 opc3:
int 21h jne fin2
mov ah,9 fin2:
mov dx,offset op2 mov ah,4ch
int 21h
principal endp
End principal
Abecedario

.Model Small MOV AH, 02


.Stack INT 21h
.Data INC DL
mayus db 65 LOOP imprime
minus db 98 mov cx,0
salto db 10,13,"$" mov ah,9
.Code mov dx,offset salto
PUBLIC PROC1 int 21h
PROC1 proc Far MOV DL,"a"
mov ah,00h MOV CX, 26
mov al,03h imprime2:
int 10h MOV AH, 02
MOV DL, "A" INT 21h
MOV CX, 26 INC DL
imprime: LOOP imprime2
RET
PROC1 ENDP
END PROC1

Numero

.Model Small mov ah,02h


.Stack int 21h
.Data cmp cl,10
.Code je salir
PUBLIC PROC2 jne repite
PROC2 proc Far
mov cx,00h salir:
mov ah, 4ch
repite: int 21h
mov dl,cl
inc cl RET
add dl,30h PROC2 ENDP
END PROC2
Nombre

.Model Small salto:


.stack 64 mov ah, 09h
.Data mov dx, offset salto_de_linea
cad3 DB 13,10,'ESCRIBE TU NOMBRE', int 21h
13, 10, '$' ret
cadena3 db 35,20,35 dup('$'),'$'
salto_de_linea DB 0Ah, 0Dh, "$" limpiar:
.Code mov ax, 03h
PUBLIC PROC3 int 10h
PROC3 proc Far
mov ax,@data imprimir:
mov ds,ax mov ah, 09h
mov dx, offset cadena3
mov ah, 09h add dx,2
mov dx, offset cad3 int 21h
int 21h

mov ah, 0Ah fin:


mov dx, offset cadena3 mov ah, 4ch
int 21h int 21h
push dx
RET
jmp limpiar PROC3 ENDP
END PROC3

También podría gustarte