谁抢了我的小红 发表于 2013-2-8 22:13:03

求解释

(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下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值mov ax,1 mov ds,ax mov ax,ax= 2662Hmov bx,bx= E626Hmov ax,bx      ax= E626Hmov ax,ax= 2662Hmov bx,bx= D6E6Hadd ax,bx      ax= FD48Hadd ax,ax= 2C14Hmov ax,0       ax=   0    mov al,ax= 00e6Hmov bx,0       bx=   0    mov bl,bx= 0026Hadd al,bl      ax= 000CH怎么解释啊

メ㊣逆ご帅☆ 发表于 2013-2-8 22:13:04

谁抢了我的小红 发表于 2013-2-8 23:04 static/image/common/back.gif
还是没懂 那个mov ax, 中 【0000】到底是什么意思啊

0000表示的是偏移 []表示的是取地址里面存放的值
默认短地址为DS,也就是把ds:0这个地址中存放的值放给AX
例如我
mov bx,5200H
mov ds:0,5200h
mov ax,
ax=5200h

用DEBUG做实验好了

我让ds:0这个地址中的值为5200h

-d查看可以看到已经成功赋值了


也就是说的意思就是默认DS为段地址,偏移为0,也就是ds:0这个地址中的 一个字大小的值 5200H放给AX

你|若|问|我 发表于 2013-2-8 22:55:17

mov ax, //因为ds=1 所以此时指向1*16+0=10h处mov进行字传递,高地址保存高位,低地址保存低位
所以ax=2662h

后面基本一样!

谁抢了我的小红 发表于 2013-2-8 23:04:26

你|若|问|我 发表于 2013-2-8 22:55 static/image/common/back.gif
mov ax, //因为ds=1 所以此时指向1*16+0=10h处mov进行字传递,高地址保存高位,低地址保存低位
所 ...

还是没懂 那个mov ax, 中 【0000】到底是什么意思啊

shansongh 发表于 2013-2-9 00:22:17

数据读取的偏移地址

ai979520253 发表于 2013-2-10 00:42:21

谁抢了我的小红 发表于 2013-2-8 23:04 static/image/common/back.gif
还是没懂 那个mov ax, 中 【0000】到底是什么意思啊

大哥,书本里说的很详细了。你有认认真真的看书了吗?

ai979520253 发表于 2013-2-10 00:43:01

楼上的大哥已经说得很详细了,再不明白,我就无语了

牡丹花下死做鬼 发表于 2013-2-10 01:20:23

原来如此啊我学习了

季末、梨花雨落 发表于 2013-2-12 10:30:05

楼上大大们,你们貌似解释错了 。莫非没发现他在debug中查看的地址是0000:0000么。然后给ds赋的地址是0001么?也就是说你在执行这个程序的时候,实际上是把0001:0000~0001:000c里面的内容给“取”了出来。而不是你给出的0000:0000内的内容!OK? 至于的意思,就是把指针指向ds:0000中的内容。

季末、梨花雨落 发表于 2013-2-12 10:32:04

mov ax,1mov ds,ax这两句 ,你已经把地址成功的指向了0001:0000的位置了,而你还在参照0000:0000位置的数据。肯定不正确的啊!

谁抢了我的小红 发表于 2013-2-23 23:46:59

ai979520253 发表于 2013-2-10 00:42 static/image/common/back.gif
大哥,书本里说的很详细了。你有认认真真的看书了吗?

我没有书 一直看的视频
页: [1]
查看完整版本: 求解释