Closed inrainmoi closed 8 months ago
La notacion posfija ya se convierte a ensamblador.
El programa siguiente:
int a, b, c;
b = 2;
a = 3 - b * (c + 2);
a = 1 + 2;
Se traduce como sigue:
.model small
.stack
.data
a DW ?
b DW ?
c DW ?
T0 DW ?
T1 DW ?
T2 DW ?
T3 DW ?
.code
begin:
mov ax, @data
mov ds, ax
mov ax, 2
mov T0, ax
mov ax, T0
mov b, ax
mov ax, c
mov bx, 2
add ax, bx
mov T0, ax
mov ax, b
mov bx, T0
mul bx
mov T1, ax
mov ax, 3
mov bx, T1
sub ax, bx
mov T2, ax
mov ax, T2
mov T3, ax
mov ax, T3
mov a, ax
mov ax, 1
mov bx, 2
add ax, bx
mov T0, ax
mov ax, T0
mov T1, ax
mov ax, T1
mov a, ax
END begin
Use el algoritmo "shunting yard" para la conversión.
Notación polaca.