Програма:
lw 0 1 num1
lw 0 2 num2
div 1 2 3
done halt
num1 .fill 45
num2 .fill 5
Машинний код:
8454148
8519685
34209795
25165824
45
5
Кінцевий стан:
@@@
state:
pc 4
ZF = 0
stack:
memory:
mem[ 0 ] 8454148
mem[ 1 ] 8519685
mem[ 2 ] 34209795
mem[ 3 ] 25165824
mem[ 4 ] 45
mem[ 5 ] 5
registers:
reg[ 0 ] 0
reg[ 1 ] 45
reg[ 2 ] 5
reg[ 3 ] 9
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
2. imul: 3*(-4)=-12.
Програма:
lw 0 1 num1
lw 0 2 num2
imul 1 2 3
done halt
num1 .fill 3
num2 .fill -4
Машинний код:
8454148
8519685
34209795
25165824
3
-4
Кінцевий стан:
@@@
state:
pc 4
ZF = 0
stack:
memory:
mem[ 0 ] 8454148
mem[ 1 ] 8519685
mem[ 2 ] 38404099
mem[ 3 ] 25165824
mem[ 4 ] 3
mem[ 5 ] -4
registers:
reg[ 0 ] 0
reg[ 1 ] 3
reg[ 2 ] -4
reg[ 3 ] -12
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
3. xidiv: 30/(-5)=-6, обміняти операнди місцями.
Програма:
lw 0 1 num1
lw 0 2 num2
xidiv 1 2 3
done halt
num1 .fill 30
num2 .fill -5
Машинний код:
8454148
8519685
42598403
25165824
30
-5
Кінцевий стан:
@@@
state:
pc 4
ZF = 0
stack:
memory:
mem[ 0 ] 8454148
mem[ 1 ] 8519685
mem[ 2 ] 42598403
mem[ 3 ] 25165824
mem[ 4 ] 30
mem[ 5 ] -5
registers:
reg[ 0 ] 0
reg[ 1 ] -5
reg[ 2 ] 30
reg[ 3 ] -6
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
4.and: 5&3=1
0101
&
0011
0001
Програма:
lw 0 1 num1
lw 0 2 num2
andf 1 2 3
done halt
num1 .fill 5
num2 .fill 3
Машинний код:
8454148
8519685
46792707
25165824
5
3
Кінцевий стан:
@@@
@@@
state:
pc 4
ZF = 0
stack:
memory:
mem[ 0 ] 8454148
mem[ 1 ] 8519685
mem[ 2 ] 46792707
mem[ 3 ] 25165824
mem[ 4 ] 5
mem[ 5 ] 3
registers:
reg[ 0 ] 0
reg[ 1 ] 5
reg[ 2 ] 3
reg[ 3 ] 1
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
xor: 5#3=6
0101
#
0011
0110
Програма:
lw 0 1 num1
lw 0 2 num2
xorf 1 2 3
done halt
num1 .fill 3
num2 .fill 5
Машинний код:
8454148
8519685
50987011
25165824
3
5
Кінцевий стан:
@@@
state:
pc 4
ZF = 0
stack:
memory:
mem[ 0 ] 8454148
mem[ 1 ] 8519685
mem[ 2 ] 50987011
mem[ 3 ] 25165824
mem[ 4 ] 3
mem[ 5 ] 5
registers:
reg[ 0 ] 0
reg[ 1 ] 3
reg[ 2 ] 5
reg[ 3 ] 6
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
6. cmpge: 1= 5>=3
Програма:
@@@
state:
pc 4
ZF = 0
stack:
memory:
mem[ 0 ] 8454148
mem[ 1 ] 8519685
mem[ 2 ] 55181315
mem[ 3 ] 25165824
mem[ 4 ] 5
mem[ 5 ] 3
registers:
reg[ 0 ] 0
reg[ 1 ] 5
reg[ 2 ] 3
reg[ 3 ] 1
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
7. jma: if (7>=4) reg[4]=7; else reg[5]=4, reg[4]=7.
Програма:
lw 0 1 num1
lw 0 2 num2
jmae 1 2 1
lw 0 5 num2
lw 0 4 num1
done halt
num1 .fill 7
num2 .fill 4
Машинний код:
8454150
8519687
59375617
8716295
8650758
25165824
7
3
Кінцевий стан:
@@@
state:
pc 6
ZF = 0
stack:
memory:
mem[ 0 ] 8454150
mem[ 1 ] 8519687
mem[ 2 ] 59375617
mem[ 3 ] 8716295
mem[ 4 ] 8650758
mem[ 5 ] 25165824
mem[ 6 ] 7
mem[ 7 ] 4
registers:
reg[ 0 ] 0
reg[ 1 ] 7
reg[ 2 ] 4
reg[ 3 ] 0
reg[ 4 ] 7
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
8. jmnae: if (5!>=6) reg[4]=6; else reg[4]=5, reg[5]=6.
Програма:
lw 0 1 num1
lw 0 2 num2
jmnae 1 2 1
lw 0 5 num2
lw 0 4 num1
done halt
num1 .fill 5
num2 .fill 6
Машинний код:
8454150
8519687
63569921
8716295
8650758
25165824
5
6
Кінцевий стан:
@@@
state
pc 6
ZF = 0
stack:
memory:
mem[ 0 ] 8454150
mem[ 1 ] 8519687
mem[ 2 ] 63569921
mem[ 3 ] 8716295
mem[ 4 ] 8650758
mem[ 5 ] 25165824
mem[ 6 ] 5
mem[ 7 ] 6
registers:
reg[ 0 ] 0
reg[ 1 ] 5
reg[ 2 ] 6
reg[ 3 ] 0
reg[ 4 ] 5
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
9. bsr: if (16=1000) “1” – в позиції 4.
Програма:
lw 0 1 num1
bsr 1 2
done halt
num1 .fill 16
Машинний код:
8454150
8519687
25165824
16
Кінцевий стан:
@@@
state:
pc 3
ZF = 1
stack:
memory:
mem[ 0 ] 8454147
mem[ 1 ] 71958528
mem[ 2 ] 25165824
mem[ 3 ] 16
registers:
reg[ 0 ] 0
reg[ 1 ] -2147483648
reg[ 2 ] 4
reg[ 3 ] 0
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
10. bsf: 8 (1000) – «1» в позиції 3.
Програма:
lw 0 1 num1
bsf 1 2
done halt
num1 .fill 8
Машинний код:
8454147
71958528
25165824
8
Кінцевий стан:
@@@
@@@
state:
pc 3
ZF = 1
stack:
memory:
mem[ 0 ] 8454147
mem[ 1 ] 67764224
mem[ 2 ] 25165824
mem[ 3 ] 8
registers:
reg[ 0 ] 0
reg[ 1 ] 1
reg[ 2 ] 3
reg[ 3 ] 0
reg[ 4 ] 0
reg[ 5 ] 0
reg[ 6 ] 0
reg[ 7 ] 0
end state
11. jne: if (16=1000) “1” – в позиції 4, ZF=1: Робота програми завершується, else reg[4]=8.
Програма:
lw 0 1 num1
bsr 1 0 3
jne 0 0 4
lw 0 4 num1
done halt
num1 .fill 8
Машинний код:
8454150
8519687
67764224
8454147
25165824
8
Кінцевий стан:
@@@
state:
@@@
state:
pc 5
ZF = 1
stack: