Sunday, June 15, 2008

16 Bit Addition

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

mov - Move data
Syntax: mov dest, src
dest: register or memory
src: register, memory, or immediate
Action: dest = src
Flags Affected: None

add - Add two numbers
Syntax: add dest, src
dest: register 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.

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

AX=1234 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 BB2143 MOV BX,4321
-T

AX=1234 BX=4321 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 01D8 ADD AX,BX
-T

AX=5555 BX=4321 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 NA PE NC
1376:0108 A30020 MOV [2000],AX DS:2000=0000
-T

AX=5555 BX=4321 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 NA PE NC
1376:010B F4 HLT

No comments: