各位高手,请帮帮忙

[复制链接]
 楼主| mojianzhi 发表于 2007-1-13 23:52 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;本人刚接触汇编程序,不太懂,望各位指点.先谢谢啦.问题如下:<br />先看题目:有X,Y两个16位数3456H和0ABCDH,求两数之和,并将结果送到Z单元.<br />&nbsp;程序清单:<br />DATA&nbsp;&nbsp;SEGMENT<br />&nbsp;X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DW&nbsp;3456H<br />&nbsp;Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DW&nbsp;0ABCDH<br />&nbsp;Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DW&nbsp;00<br />DATA&nbsp;&nbsp;&nbsp;ENDS<br />CODE&nbsp;&nbsp;&nbsp;SEGMENT<br />&nbsp;&nbsp;ASSUME&nbsp;&nbsp;DS:DATA,CS:CODE<br />START:&nbsp;MOV&nbsp;AX,DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;DS,AX<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LEA&nbsp;SI,X<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LEA&nbsp;DI,Y<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;AX,[SI]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD&nbsp;AX,[DI]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;Z,AX<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;AH,4CH<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT&nbsp;21H<br />CODE&nbsp;&nbsp;&nbsp;ENDS<br />&nbsp;&nbsp;END&nbsp;&nbsp;&nbsp;START<br />问题就是取X,Y的值时,要先将X,Y的有效地址分别送SI,DI的,那反过来了,把一个值送到Z单元中时,为什么不用先取Z的有效地址呢?<br />&nbsp;&nbsp;&nbsp;&nbsp;再次感谢高手,谢谢!
maychang 发表于 2007-1-14 12:03 | 显示全部楼层

这是8086汇编

当然也可以先取Z的地址,用间接寻址方式。<br />X和Y也可以用直接寻址方式。<br />你认为哪个方便就用哪个。
 楼主| mojianzhi 发表于 2007-1-14 14:47 | 显示全部楼层

谢谢指点

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

29

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部