汇编语言试题那个对???

对字单元BUF的内容加1的运算:我觉得第一个不对,但是为什么老师选第二个不对1.movbx,offsetBUFincwordprt[bx]2.movbx,BUFincwo... 对字单元BUF的内容加1的运算:我觉得第一个不对,但是为什么老师选第二个不对
1.mov bx,offset BUF
inc word prt[bx]
2.mov bx,BUF
inc word ptr[bx]
为什么????
展开
 我来答
呀豆荚
2011-03-23 · TA获得超过3080个赞
知道小有建树答主
回答量:752
采纳率:100%
帮助的人:1267万
展开全部
第二个是错误的。
比如buf中的内容是0001h,地址是2000h,那么我们应该是让0001h+1变成0002h。
第一种方法,将buf的偏移地址2000h送bx,inc指令的操作对象是[bx],也就是把bx中的值2000h当做地址,到内存中去找到这个单元,并将里面的内容增一。这样刚好找到buf的内容,达到了目的。
第二种方法,是把buf的内容0001h送bx,inc操作对象是[bx],这样就把0001h当做了地址,很显然 是不对的。

出现这个问题的主要原因是你对寄存器间接寻址理解错误。
寄存器外面加上中括号,就代表着将寄存器的内容当做地址,从而找到内存中的某个单元。
第二种方法修改一下,这样就是正确的了:
mov bx,BUF
inc bx
百度网友9045b38
2011-03-23 · TA获得超过1972个赞
知道小有建树答主
回答量:984
采纳率:90%
帮助的人:528万
展开全部
第一个对 :首先将地址给了BX, 然后对指向BX地址的单元+1;
第二个错 :首先将地址的值给了BX, 然后对指向该值的地址单元+1,显然已不是对BUF指向的地址+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水灵熙1
2011-03-23
知道答主
回答量:16
采纳率:0%
帮助的人:16.4万
展开全部
BUF是偏移地址,offset是编译是计算,也就是说是取得变量的地址。比如buf的偏移地址是1234h,那么mov ax,offset buf这条指令在编译后就变成mov ax,1234h。
追问
你还是没回答的,他要求buf的内容,不是地址加1,MOV BX,OFFSET BUF是BUF的地址传给bx
INC WORD PRT [BX]就是地址加1了
第二个,mov BX,BUF 是内容传给BX INC WORDP PTR[BX] 内容加1了,所以不对的是第一个而不是第二个。 是不是,,,,,,,,,,
追答
恩,我觉得是第二个对。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式