assembly - Hidden value included when putting ebx register into a DD variable -


at 1 moment while executing code turbo debugger, bx register has 0001 value in it.

(i can view bx register in turbo debugger, , not find how view whole ebx. side question: how view whole eax/ebx/... registers? )

immediately after, when send ebx dd variable sum1, sent value becomes 30310001h.

what reasons , how can avoid it?

my guess reason: sum1 recieved invisible value, included in ebx not bx (contained ebx).

(i new ebx/eax/... registers btw.)

if guessed right, how can access unseen part of ebx?

this shortened code, loop2a converts string decimal value, char-by-char, , puts ebx.

loop2a:     mov     eax, [di]     mov     ah, 0     sub     eax, '0'      imul    eax, ecx     add     ebx, eax     mov     sum1, ebx      imul    ecx, ten            dec     di      cmp     di,     jne     loop2a      mov     sum1, ebx 

(compiler: turbo assembler, processor: intel x86.)

anywhere in code initialized bx (xor bx,bx or mov bx,0). change ebx (xor ebx,ebx or mov ebx,0). cannot separately access upper word of 32-bit-register.


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -