I'm a beginner in Assembly Language.

To make this very short, here're my "instructions":
MOV CL ,
MOV +2 , CL

I use TASM. When I used the Trace command I got:
AX=096D  BX=0000  CX=00A1  DX=0000  SP=0000  BP=0000  SI=0040  DI=0060
DS=096D  ES=0959  SS=0969  CS=0972  IP=000B  NV UP EI PL NZ NA PO NC
0972:000B 8A0C          MOV    CL,                            DS:0040=30
-t

AX=096D  BX=0000  CX=0030  DX=0000  SP=0000  BP=0000  SI=0040  DI=0060
DS=096D  ES=0959  SS=0969  CS=0972  IP=000D  NV UP EI PL NZ NA PO NC
0972:000D 884D02        MOV    ,CL                        DS:0062=FD

My question is, from where on earth did that "FD" came from?! CL's value is 30, and so the content of should also be 30, right? Am I missing something here?

Any help is appreciated. I apologize if I wasn't clear enough.
Posted on 2006-09-30 13:17:22 by Lilith
debug is displaying the NEXT instruction to execute, not the LAST instruction executed.
Posted on 2006-09-30 16:03:23 by tenkey
The square brackets indicate that you are obtaining the value at the address pointed to by the register (plus whatever offset you add). The value of *BEFORE* the instruction is executed was 30h, SI = 0040h. In the second line the value of before the instruction is executed was FDh, DI = 0060h, it will be 30h after the instruction is retired.
Posted on 2006-10-01 01:38:40 by donkey
Ahaa! Silly me. Thank you so much tenkey and donkey (hehe that rhymed)!
Posted on 2006-10-01 06:14:15 by Lilith