Sunday, June 15, 2008

16 Bit Subtraction

The given program displays the set of instructions for a 16 bit subtraction of two numbers.

sub - Subtract two numbers
Syntax: sub dest, src
dest: regsiter or memory
src: register, memory, or immediate
Action: dest = dest - src
Flags Affected: OF, SF, ZF, AF, PF, CF
Notes: Works for both signed and unsigned numbers.


-A
1376:0100 MOV AX, 4321
1376:0103 MOV BX, 1234
1376:0106 SUB AX, BX
1376:0108 MOV [2000], AX
1376:010B HLT
1376:010C
-T

AX=4321 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1376 ES=1376 SS=1376 CS=1376 IP=0103 NV UP EI PL NZ NA PO NC
1376:0103 BB3412 MOV BX,1234
-T

AX=4321 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1376 ES=1376 SS=1376 CS=1376 IP=0106 NV UP EI PL NZ NA PO NC
1376:0106 29D8 SUB AX,BX
-T

AX=30ED BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1376 ES=1376 SS=1376 CS=1376 IP=0108 NV UP EI PL NZ AC PE NC
1376:0108 A30020 MOV [2000],AX DS:2000=0000
-T

AX=30ED BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1376 ES=1376 SS=1376 CS=1376 IP=010B NV UP EI PL NZ AC PE NC
1376:010B F4 HLT

No comments: