Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
INCLUDE assemblyMethods.lib ajuste macro mov ax,cx aam ;conversion de h a d mov cx,ax add cl,30h mov u,cl add bl,ch mov ax,bx aam ;conversion de h a d mov bx,ax add bl,30h mov d,bl add bh,aux ;aux es centena y se agrega a bh mov bl,bh mov bh,00h mov cx,0000h mov ax,bx aam mov cx,ax add cl,30h mov c,cl add ch,30h mov m,ch mov dl,m aam mov m,dl endm ajuste2 macro endm pila segment db 64 dub (?) pila ends datos segment msg1 db 'Teclee 1 para calcular el area de un triangulo',13,10,'Teclee 2 para calcular el perimetro',13,10,'3 para terminar el programa$' msg2 db 13,10,'Ingrese un numero: $' msg3 db 13,10,'El valor del area es: $' msg4 db 13,10,'El valor del perimetro es: $' msg5 db 'Opcion no valida, seleccione alguna de las tres opciones anteriores$' msg6 db 'Perimetro de un triangulo$' msg7 db 'Area de un triangulo$' msg8 db 'Opcion no programada aun$' enter db 13,10,'$' cm db 0 dm db 0 m db 0 c db 0 d db 0 u db 0 aux db 0 aux2 db 0 datos ends codigo segment assume ss:pila,ds:datos,cs:codigo inicio: mov ax,datos mov ds,ax ask: printText msg1 next enter next enter visibleInput ;validacion para que solo se respete las opciones del menu cmp al,49 ;pulsar 1 para sacar area je area cmp al,50 ;pulsar 2 para sacar perimetro je perim cmp al,51 ;pulsar 3 para terminar programa je exit cmp al,49 jne error cmp al,50 jne error cmp al,51 jne error area: next enter next enter printText msg7 next enter ;base printText msg2 visibleInput ;centenas sub al,30h mov aux,al visibleInput ;decenas sub al,30h mov bl,al visibleInput ;unidades sub al,30h mov cl,al ;altura printText msg2 visibleInput ;centenas sub al,30h mov aux2,al visibleInput ;decenas sub al,30h mov bh,al visibleInput ;unidades sub al,30h mov ch,al ;ajuste2 printText msg3 ;se imprime el resultado de la suma next enter next enter jmp ask perim: next enter next enter printText msg6 next enter ;primer numero printText msg2 visibleInput ;centenas sub al,30h mov aux,al visibleInput ;decenas sub al,30h mov bl,al visibleInput ;unidades sub al,30h mov cl,al ;segundo numero printText msg2 visibleInput ;centenas sub al,30h add aux,al visibleInput ;decenas sub al,30h add bl,al visibleInput ;unidades sub al,30h add cl,al ;tercer numero printText msg2 visibleInput ;centenas sub al,30h add aux,al visibleInput ;decenas sub al,30h add bl,al visibleInput ;unidades sub al,30h add cl,al ajuste printText msg4 ;se imprime el resultado de la suma mov ah,02h mov dl,m int 21h mov ah,02h mov dl,c int 21h mov ah,02h mov dl,d int 21h mov ah,02h mov dl,u int 21h next enter next enter jmp ask error: next enter next enter printText msg5 ;le pedimos al usuario una opcion valida del menu next enter next enter jmp ask exit: endProgram ;terminamos el programa codigo ends end inicio
Compartir