Está en la página 1de 12

Fernando Cajero Romero

EMU8086 GENERATED LISTING. MACHINE CODE <- SOURCE.

Lista_de.com_ -- emu8086 assembler version: 4.05

[ 02/04/2017 -- 09:17:03 p. m. ]

================================================================================
===================

[LINE] LOC: MACHINE CODE SOURCE

================================================================================
===================

[ 1] : name "Lista de operaciones"

[ 2] :

[ 3] : ;Cajero Romero Fernando

[ 4] : ;Menu

[ 5] : ;02/04/2017

[ 6] :

[ 7] : org 100h

[ 8] :

[ 9] 0100: .code

[ 10] 0100: .startup

[ 11] :

[ 12] 0100: E9 DB 00 jmp menu

[ 13] :

[ 14] 0103: 0A 0D 4D 45 4E 55 20 44 45 20 4F 50 msg db 0ah, 0dh, "MENU DE OPCIONES",


0dh,0ah,0ah

43 49 4F 4E 45 53 0D 0A 0A

[ 15] 0118: 31 2E 20 53 75 6D 61 72 0D 0A db "1. Sumar", 0dh,0ah

[ 16] 0122: 32 2E 20 52 65 73 74 61 72 0D 0A db "2. Restar", 0dh,0ah


Fernando Cajero Romero

[ 17] 012D: 33 2E 20 4D 75 6C 74 69 70 6C 69 63 db "3. Multiplicar", 0dh,0ah

61 72 0D 0A

[ 18] 013D: 34 2E 20 44 6F 62 6C 65 0D 0A db "4. Doble", 0dh,0ah

[ 19] 0147: 35 2E 20 4D 75 6C 74 69 70 6C 69 63 db "5. Multiplicar por 3", 0dh,0ah

61 72 20 70 6F 72 20 33 0D 0A

[ 20] 015D: 36 2E 20 53 61 6C 69 72 0D 0A 0A db "6. Salir", 0dh,0ah, 0ah

[ 21] 0168: 53 65 6C 65 63 63 69 6F 6E 61 20 75 db "Selecciona una opcion: $"

6E 61 20 6F 70 63 69 6F 6E 3A 20 24

[ 22] 0180: 0A 0D 52 65 73 75 6C 74 61 64 6F 3A msg1 db 0ah, 0dh, "Resultado: $"

20 24

[ 23] 018E: 0A 0D 49 6E 67 72 65 73 61 20 75 6E msg2 db 0ah, 0dh, "Ingresa un numero: $"

20 6E 75 6D 65 72 6F 3A 20 24

[ 24] 01A4: 0A 0D 50 72 65 73 69 6F 6E 61 20 63 msg3 db 0ah, 0dh, "Presiona cualquier tecla


para salir... $"

75 61 6C 71 75 69 65 72 20 74 65 63

6C 61 20 70 61 72 61 20 73 61 6C 69

72 2E 2E 2E 20 24

[ 25] :

[ 26] 01CE: 00 00 num1 dw ?

[ 27] 01D0: 00 00 num2 dw ?

[ 28] :

[ 29] 01D2: 00 n1 db ?

[ 30] 01D3: 00 n2 db ?

[ 31] 01D4: 00 n3 db ?

[ 32] :

[ 33] 01D5: 00 00 cent dw ?

[ 34] 01D7: 00 00 dece dw ?

[ 35] 01D9: 00 00 uni dw ?


Fernando Cajero Romero

[ 36] 01DB: 00 00 res dw ?

[ 37] :

[ 38] 01DD: 00 opc db ?

[ 39] :

[ 40] : ;Impresion de MENU

[ 41] 01DE: menu:

[ 42] :

[ 43] :

[ 44] 01DE: BA 03 01 mov dx, offset msg

[ 45] 01E1: B4 09 mov ah, 9

[ 46] 01E3: CD 21 int 21h

[ 47] 01E5: B4 01 mov ah, 1

[ 48] 01E7: CD 21 int 21h

[ 49] 01E9: 25 FF 00 and ax, 00FFh

[ 50] 01EC: 2D 30 00 sub ax, 30h

[ 51] :

[ 52] : ;Comparacion salto

[ 53] 01EF: 3C 01 cmp al, 1

[ 54] 01F1: 75 03 E9 1F 01 je sumar

[ 55] 01F6: 3C 02 cmp al, 2

[ 56] 01F8: 75 03 E9 4D 01 je restar

[ 57] 01FD: 3C 03 cmp al, 3

[ 58] 01FF: 75 03 E9 DA 00 je multiplicar

[ 59] 0204: 3C 04 cmp al,4

[ 60] 0206: 75 03 E9 74 01 je doblar

[ 61] 020B: 3C 05 cmp al, 5

[ 62] 020D: 75 03 E9 9C 01 je triplicar

[ 63] 0212: 3C 06 cmp al, 6

[ 64] 0214: 74 07 je salir


Fernando Cajero Romero

[ 65] :

[ 66] :

[ 67] : ;Limpiar pantalla

[ 68] 0216: limpia:

[ 69] 0216: B4 00 mov ah, 00h

[ 70] 0218: B0 03 mov al, 03h

[ 71] 021A: CD 10 int 10h

[ 72] 021C: C3 ret

[ 73] :

[ 74] : ;Salida con interrupcion 16h

[ 75] 021D: salir:

[ 76] 021D: BA A4 01 mov dx, offset msg3

[ 77] 0220: B4 09 mov ah, 9

[ 78] 0222: CD 21 int 21h

[ 79] 0224: B4 00 mov ah, 0

[ 80] 0226: CD 16 int 16h

[ 81] 0228: C3 ret

[ 82] :

[ 83] : ;Solicita numero

[ 84] 0229: solicita:

[ 85] 0229: BA 8E 01 mov dx, offset msg2

[ 86] 022C: B4 09 mov ah, 9

[ 87] 022E: CD 21 int 21h

[ 88] 0230: E8 01 00 call guarda_n

[ 89] 0233: C3 ret

[ 90] :

[ 91] : ;Guarda numeros utilizados

[ 92] :

[ 93] 0234: guarda_n:


Fernando Cajero Romero

[ 94] 0234: B4 01 mov ah, 01h

[ 95] 0236: CD 21 int 21h

[ 96] 0238: 25 FF 00 and ax, 00FFh

[ 97] 023B: 2D 30 00 sub ax, 30h

[ 98] 023E: B9 00 00 mov cx, 0

[ 99] 0241: B1 64 mov cl, 64h

[ 100] 0243: F6 E1 mul cl

[ 101] 0245: A3 D5 01 mov [cent], ax

[ 102] :

[ 103] 0248: B4 01 mov ah, 01h

[ 104] 024A: CD 21 int 21h

[ 105] 024C: 25 FF 00 and ax, 00FFh

[ 106] 024F: 2D 30 00 sub ax, 30h

[ 107] 0252: B9 00 00 mov cx, 0

[ 108] 0255: B1 0A mov cl, 0Ah

[ 109] 0257: F6 E1 mul cl

[ 110] 0259: A3 D7 01 mov [dece], ax

[ 111] :

[ 112] 025C: B4 01 mov ah, 01h

[ 113] 025E: CD 21 int 21h

[ 114] 0260: 25 FF 00 and ax, 00FFh

[ 115] 0263: 2D 30 00 sub ax, 30h

[ 116] 0266: A3 D9 01 mov [uni], ax

[ 117] :

[ 118] 0269: B8 00 00 mov ax, 0

[ 119] 026C: 03 06 D5 01 add ax, cent

[ 120] 0270: 03 06 D7 01 add ax, dece

[ 121] 0274: 03 06 D9 01 add ax, uni

[ 122] 0278: A3 DB 01 mov [res], ax


Fernando Cajero Romero

[ 123] 027B: C3 ret

[ 124] :

[ 125] : ;convierte los numeros en ascci a decimal

[ 126] : ;para poder imprimir

[ 127] 027C: transforma:

[ 128] 027C: A1 DB 01 mov ax, res

[ 129] 027F: B2 64 mov dl, 64h

[ 130] 0281: F6 F2 div dl

[ 131] 0283: A2 D2 01 mov [n1], al

[ 132] 0286: 88 26 D3 01 mov [n2], ah

[ 133] 028A: B8 00 00 mov ax, 0

[ 134] 028D: A0 D3 01 mov al, n2

[ 135] 0290: B2 0A mov dl, 0Ah

[ 136] 0292: F6 F2 div dl

[ 137] 0294: A2 D3 01 mov [n2], al

[ 138] 0297: 88 26 D4 01 mov [n3], ah

[ 139] 029B: C3 ret

[ 140] :

[ 141] : ;imprime los numeros

[ 142] 029C: imprime:

[ 143] 029C: BA 00 00 mov dx, 0

[ 144] 029F: BB 00 00 mov bx, 0

[ 145] 02A2: 8A 1E D2 01 mov bl, n1

[ 146] 02A6: 80 C3 30 add bl, 30h

[ 147] 02A9: B4 02 mov ah, 02h

[ 148] 02AB: 8A D3 mov dl, bl

[ 149] 02AD: CD 21 int 21h

[ 150] :

[ 151] 02AF: BA 00 00 mov dx, 0


Fernando Cajero Romero

[ 152] 02B2: BB 00 00 mov bx, 0

[ 153] 02B5: 8A 1E D3 01 mov bl, n2

[ 154] 02B9: 80 C3 30 add bl, 30h

[ 155] 02BC: B4 02 mov ah, 02h

[ 156] 02BE: 8A D3 mov dl, bl

[ 157] 02C0: CD 21 int 21h

[ 158] :

[ 159] 02C2: BA 00 00 mov dx, 0

[ 160] 02C5: BB 00 00 mov bx, 0

[ 161] 02C8: 8A 1E D4 01 mov bl, n3

[ 162] 02CC: 80 C3 30 add bl, 30h

[ 163] 02CF: B4 02 mov ah, 02h

[ 164] 02D1: 8A D3 mov dl, bl

[ 165] 02D3: CD 21 int 21h

[ 166] 02D5: C3 ret

[ 167] :

[ 168] : ;Salto de linea

[ 169] 02D6: nueva_l:

[ 170] 02D6: BA 0A 00 mov dx, 0ah

[ 171] 02D9: B4 02 mov ah, 2

[ 172] 02DB: CD 21 int 21h

[ 173] 02DD: C3 ret

[ 174] :

[ 175] : ;multiplicacion

[ 176] 02DE: multiplicar:

[ 177] 02DE: E8 48 FF call solicita

[ 178] 02E1: A3 CE 01 mov [num1], ax

[ 179] 02E4: B8 00 00 mov ax, 0

[ 180] 02E7: E8 3F FF call solicita


Fernando Cajero Romero

[ 181] 02EA: A3 D0 01 mov [num2], ax

[ 182] 02ED: A1 CE 01 mov ax, num1

[ 183] 02F0: 8B 0E D0 01 mov cx, num2

[ 184] 02F4: F6 E1 mul cl

[ 185] 02F6: A3 DB 01 mov [res], ax

[ 186] 02F9: E8 DA FF call nueva_l

[ 187] 02FC: BA 80 01 mov dx, offset msg1

[ 188] 02FF: B4 09 mov ah, 9

[ 189] 0301: CD 21 int 21h

[ 190] 0303: E8 76 FF call transforma

[ 191] 0306: E8 93 FF call imprime

[ 192] 0309: E8 CA FF call nueva_l

[ 193] 030C: E8 D2 00 call retardo

[ 194] 030F: E8 04 FF call limpia

[ 195] 0312: E9 C9 FE jmp menu

[ 196] :

[ 197] : ;suma

[ 198] 0315: sumar:

[ 199] 0315: E8 11 FF call solicita

[ 200] 0318: A3 CE 01 mov [num1], ax

[ 201] 031B: B8 00 00 mov ax, 0

[ 202] 031E: E8 08 FF call solicita

[ 203] 0321: A3 D0 01 mov [num2], ax

[ 204] 0324: A1 CE 01 mov ax, num1

[ 205] 0327: 13 06 D0 01 adc ax, num2

[ 206] 032B: A3 DB 01 mov [res], ax

[ 207] 032E: E8 A5 FF call nueva_l

[ 208] 0331: BA 80 01 mov dx, offset msg1

[ 209] 0334: B4 09 mov ah, 9


Fernando Cajero Romero

[ 210] 0336: CD 21 int 21h

[ 211] 0338: E8 41 FF call transforma

[ 212] 033B: E8 5E FF call imprime

[ 213] 033E: E8 95 FF call nueva_l

[ 214] 0341: E8 9D 00 call retardo

[ 215] 0344: E8 CF FE call limpia

[ 216] 0347: E9 94 FE jmp menu

[ 217] :

[ 218] : ;resta

[ 219] 034A: restar:

[ 220] 034A: E8 DC FE call solicita

[ 221] 034D: A3 CE 01 mov [num1], ax

[ 222] 0350: B8 00 00 mov ax, 0

[ 223] 0353: E8 D3 FE call solicita

[ 224] 0356: A3 D0 01 mov [num2], ax

[ 225] 0359: A1 CE 01 mov ax, num1

[ 226] 035C: 1B 06 D0 01 sbb ax, num2

[ 227] 0360: A3 DB 01 mov [res], ax

[ 228] 0363: E8 70 FF call nueva_l

[ 229] 0366: BA 80 01 mov dx, offset msg1

[ 230] 0369: B4 09 mov ah, 9

[ 231] 036B: CD 21 int 21h

[ 232] 036D: E8 0C FF call transforma

[ 233] 0370: E8 29 FF call imprime

[ 234] 0373: E8 60 FF call nueva_l

[ 235] 0376: E8 68 00 call retardo

[ 236] 0379: E8 9A FE call limpia

[ 237] 037C: E9 5F FE jmp menu

[ 238] :
Fernando Cajero Romero

[ 239] : ;doble

[ 240] 037F: doblar:

[ 241] 037F: E8 A7 FE call solicita

[ 242] 0382: A3 CE 01 mov [num1], ax

[ 243] 0385: B8 00 00 mov ax, 0

[ 244] 0388: A1 CE 01 mov ax, num1

[ 245] 038B: 13 06 CE 01 adc ax,num1

[ 246] 038F: A3 DB 01 mov [res], ax

[ 247] :

[ 248] 0392: E8 41 FF call nueva_l

[ 249] 0395: BA 80 01 mov dx, offset msg1

[ 250] 0398: B4 09 mov ah, 9

[ 251] 039A: CD 21 int 21h

[ 252] 039C: E8 DD FE call transforma

[ 253] 039F: E8 FA FE call imprime

[ 254] 03A2: E8 31 FF call nueva_l

[ 255] 03A5: E8 39 00 call retardo

[ 256] 03A8: E8 6B FE call limpia

[ 257] 03AB: E9 30 FE jmp menu

[ 258] :

[ 259] :

[ 260] : ;triplicar

[ 261] 03AE: triplicar:

[ 262] 03AE: E8 78 FE call solicita

[ 263] 03B1: A3 CE 01 mov [num1], ax

[ 264] 03B4: B8 00 00 mov ax, 0

[ 265] 03B7: A1 CE 01 mov ax, num1

[ 266] 03BA: 13 06 CE 01 adc ax,num1

[ 267] 03BE: 13 06 CE 01 adc ax,num1


Fernando Cajero Romero

[ 268] 03C2: A3 DB 01 mov [res], ax

[ 269] :

[ 270] 03C5: E8 0E FF call nueva_l

[ 271] 03C8: BA 80 01 mov dx, offset msg1

[ 272] 03CB: B4 09 mov ah, 9

[ 273] 03CD: CD 21 int 21h

[ 274] 03CF: E8 AA FE call transforma

[ 275] 03D2: E8 C7 FE call imprime

[ 276] 03D5: E8 FE FE call nueva_l

[ 277] 03D8: E8 06 00 call retardo

[ 278] 03DB: E8 38 FE call limpia

[ 279] 03DE: E9 FD FD jmp menu

[ 280] :

[ 281] :

[ 282] :

[ 283] 03E1: retardo:

[ 284] 03E1: B9 0A 00 mov cx, 0ah

[ 285] 03E4: E8 01 00 call ciclo

[ 286] 03E7: C3 ret

[ 287] :

[ 288] 03E8: ciclo:

[ 289] 03E8: 49 dec cx

[ 290] 03E9: 75 FD jnz ciclo

[ 291] 03EB: C3 ret

[ 292] :

================================================================================
===================
Fernando Cajero Romero

================================================================================
===================

También podría gustarte