Link de consulta: https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resueltos-en-ensamblador-8086
Sintaxis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| org 100h ; inicio de programa include 'emu8086.inc' ;Incluye funciones de libreria emu8086 ; DEFINE_SCAN_NUM ; DEFINE_PRINT_STRING DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS mov si, 0 mov al, 0 ;Convertir primera cadena a numero cadAnum: cmp cad1[si], "$" jz seguir mov bl, 10 mul bl sub cad1[si], '0' add al, cad1[si] inc si ;realiza un incremento loop cadAnum ; seguir: mov aux1, al ;Convertir segunda cadena a numero mov si, 0 mov al, 0 cadAnum2: cmp cad3[si], "$" jz seguir2 ;Saltar si el resultado es cero mov bl, 10 mul bl sub cad3[si], '0' add al, cad3[si] inc si loop cadAnum2 seguir2: mov bl, al mov al, aux1 ;realizar operaciones normalmente teniendo ya los dos numeros decimales cmp cad2, "-" jz resta cmp cad2, "+" jz suma cmp cad2, "*" jz multi cmp cad2, "/" jz divi resta: sub al, bl jmp fin suma: add al, bl jmp fin multi: mul bl jmp fin divi: div bl jmp fin fin: mov bx, ax mov ah, 09 lea dx,msg int 21h mov ax, bx call PRINT_NUM ret cad1 db "20$" cad2 db "-" cad3 db "2$" aux1 db ? aux2 dw ? msg dw "El resultado es: $" |
A diferencia del otro programa que había subido con anterioridad, la declaración de los datos en esta ocasión es al final del programa y la declaración de las funciones es al inicio del programa.
Una vez aclarado esto, les pondré la corrida del programa. Como pueden ver, damos de alta el numero 20 y el numero 2, así como el símbolo de resta para realizar esa operación.

Dado de alta los siguientes datos, en la parte de corrida del programa podemos ver lo que es las variables que anteriormente habíamos declarado para ver los movimientos de esta a lo largo de la sintaxis.

Finalmente, aquí tenemos lo que es programa nos devuelve como mensaje final. A mi gusto, podríamos modificarlo para que nos muestre los números que se ingresaron y la operación seleccionada para que no solo nos lance el resultado sin ningún contexto.
