rdz1989 发表于 2013-2-25 00:07:22

王爽汇编语言检测点3.1本人高中学历在自学小甲鱼的视频。请加qq:903632479.

(1)在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 600000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88 -rAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0DB4ES=0DB4SS=0DB4CS=0DB4IP=0100   NV UP EI PL NZ NA PO NC0DB4:0100 B80100      MOV   AX,0001-tAX=0001BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0DB4ES=0DB4SS=0DB4CS=0DB4IP=0103   NV UP EI PL NZ NA PO NC0DB4:0103 8ED8          MOV   DS,AX-tAX=0001BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0105   NV UP EI PL NZ NA PO NC0DB4:0105 A10000      MOV   AX,                        DS:0000=2662         *\这里为什么0001::0000怎么等于2662了?\*-tAX=2662BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0108   NV UP EI PL NZ NA PO NC0DB4:0108 8B1E0100      MOV   BX,                        DS:0001=E626          *\这里为什么0001::0001怎么等于e626了?\*-tAX=2662BX=E626CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=010C   NV UP EI PL NZ NA PO NC0DB4:010C 89D8          MOV   AX,BX-tAX=E626BX=E626CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=010E   NV UP EI PL NZ NA PO NC0DB4:010E A10000      MOV   AX,                        DS:0000=2662-tAX=2662BX=E626CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0111   NV UP EI PL NZ NA PO NC0DB4:0111 8B1E0200      MOV   BX,                        DS:0002=D6E6-tAX=2662BX=D6E6CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0115   NV UP EI PL NZ NA PO NC0DB4:0115 01D8          ADD   AX,BX-tAX=FD48BX=D6E6CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0117   NV UP EI NG NZ NA PE NC0DB4:0117 03060400      ADD   AX,                        DS:0004=2ECC-tAX=2C14BX=D6E6CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=011B   NV UP EI PL NZ AC PE CY0DB4:011B B80000      MOV   AX,0000-tAX=0000BX=D6E6CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=011E   NV UP EI PL NZ AC PE CY0DB4:011E A00200      MOV   AL,                        DS:0002=E6-tAX=00E6BX=D6E6CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0121   NV UP EI PL NZ AC PE CY0DB4:0121 BB0000      MOV   BX,0000-tAX=00E6BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0124   NV UP EI PL NZ AC PE CY0DB4:0124 8A1E0C00      MOV   BL,                        DS:000C=26-tAX=00E6BX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0128   NV UP EI PL NZ AC PE CY0DB4:0128 00D8          ADD   AL,BL-tAX=000CBX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0001ES=0DB4SS=0DB4CS=0DB4IP=012A   NV UP EI PL NZ NA PE CY0DB4:012A C6061799FF    MOV   BYTE PTR ,FF               DS:9917=9A          *\这里为什么0001::9917怎么等于9A了?\*-q

小米小小妖 发表于 2013-2-26 20:39:37

唉 这里我也看不懂呀郁闷中,cs = 0001偏移地址不是0吗?那输出的结果应该是8070呀

鱼游四海 发表于 2013-2-26 22:56:13

mov ax,1
mov ds,ax
这里给的是ds的段地址不是偏移地址,物理地址=ds段地址*16+偏移地址,所以ds应指向0010:0000这行,回答正确否,有老大神指正

谢青源 发表于 2013-2-27 14:23:28

是不是把0000这个地址的数据移到了ax中?

-搁浅的回忆 发表于 2013-3-2 11:44:04

...
-t
AX=0001BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0105   NV UP EI PL NZ NA PO NC
0DB4:0105 A10000      MOV   AX,                         DS:0000=2662;
...
这里的=2662是说DS:0000内存单元的内容为2662
;在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60      
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88      
因为DS:0000DS=0001偏移地址为0000所以物理地址为00010
又因为AX为字单元16位所以存放对应的物理地址的内容···0000:0010 62 26 ··· (0000*16+0010=00010)
高地址26放高位,低地址62放低位,所以DS:0000内存单元的内容为2662
即DS:0000=2662
下面的结果也是同样方式得到的

rdz1989 发表于 2013-3-20 00:49:53

鱼游四海 发表于 2013-2-26 22:56 static/image/common/back.gif
mov ax,1
mov ds,ax
这里给的是ds的段地址不是偏移地址,物理地址=ds段地址*16+偏移地址,所以ds应指向00 ...

呵呵,我思考的也是这样。bx=0,第四行程序中怎么就让 mov bx,bx= E626H?ds应指向0000:0001?

小小小小鱼 发表于 2013-3-20 22:32:45

0001: 0001   等价于0000 :0011      内存中的段地址是0000 乘以16+给偏移就完了

小小小小鱼 发表于 2013-3-20 22:36:20

鱼游四海 发表于 2013-2-26 22:56 static/image/common/back.gif
mov ax,1
mov ds,ax
这里给的是ds的段地址不是偏移地址,物理地址=ds段地址*16+偏移地址,所以ds应指向00 ...

不对的~0010 :0000等于 0000:0100不会看的话 最简单的办法就是你吧 段地址 和内存中的段地址 统一余下的加给偏移 就能判断是不是一个地址了~!
页: [1]
查看完整版本: 王爽汇编语言检测点3.1本人高中学历在自学小甲鱼的视频。请加qq:903632479.