第一次debug,遇到的一个小疑问
data segment
source_buffer db 40 dup('a')
data ends
extra segment
dest_buffer db 40 dup('?')
extra ends
code segment
main proc far
assume cs:code, ds:data, es:extra
start:
push ds
sub ax, ax
push ax
mov ax, data
mov ds, ax
mov ax, extra
mov es, ax
lea si, source_buffer
lea di, dest_buffer
...
----------------------------------------------------------------------
-d 0 120
13E8:0000 CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 F4 0D 8A 03
13E8:0010 F4 0D 17 03 F4 0D E3 0D-01 01 01 00 02 FF FF FF
13E8:0020 FF FF FF FF FF FF FF FF-FF FF FF FF A1 13 4C 01
13E8:0030 B4 12 14 00 18 00 E8 13-FF FF FF FF 00 00 00 00
13E8:0040 05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
13E8:0050 CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20
13E8:0060 20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20
13E8:0070 20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00
13E8:0080 00 0D 74 65 73 74 2E 65-78 65 0D 41 53 54 45 52
13E8:0090 3D 41 30 0D 64 64 72 65-73 73 2E 20 20 46 6F 72
13E8:00A0 20 65 78 61 6D 70 6C 65-3A 0D 20 6F 6E 20 4E 54
13E8:00B0 56 44 4D 2C 20 73 70 65-63 69 66 79 20 61 6E 20
13E8:00C0 69 6E 76 61 6C 69 64 0D-20 6F 6E 6C 79 2E 0D 00
13E8:00D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
13E8:00E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
13E8:00F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
13E8:0100 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 // 这一行
13E8:0110 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61
13E8:0120 61
而反编译
-u
13FE:0000 1E PUSH DS
13FE:0001 2BC0 SUB AX,AX
13FE:0003 50 PUSH AX
13FE:0004 B8F813 MOV AX,13F8
13FE:0007 8ED8 MOV DS,AX
13FE:0009 B8FB13 MOV AX,13FB
13FE:000C 8EC0 MOV ES,AX
13FE:000E 8D360000 LEA SI,[0000] // 这一行
13FE:0012 8D3E0000 LEA DI,[0000]
...
问题:
DS = 13FE,但为什么13FE:0000的内容不是'a',反而13FE:0100才是'a'呢??