搞到晚上4点还没有搞定的汇编指令

2020-01-16 18:29发布

本帖最后由 GZLJZ 于 2012-4-21 04:42 编辑

下面代码是成功的:
BUF   DATA    70H       

MOV        A,#100               
MOV        BUF+2,A
即将数值100存入72H寄存器里
------------------------------------------------------------------------------------------------
而我想把上面固定数值2变为变量,确不行请高手帮忙,谢了
我设想的程序如下:是不能达到,将数值100存入72H寄存器里
N      DATA    30H
BUF   DATA    70H       

MOV        N,#2
MOV        A,#100               
MOV        BUF+N,A

或者还有什么方法同样达到我的要求呀

       
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
27条回答
GZLJZ
1楼-- · 2020-01-18 22:23
本帖最后由 GZLJZ 于 2012-4-21 12:40 编辑

刚醒来,谢谢各位,
10楼代码等会我试下,谢谢,(刚试了,确实是好办法,谢了,我用了这么久汇编,还不知ADD可以加地址的,以前以为加的是数值,哦关键mov a,#buf这句     把buf的地址赋值给了A)
11楼也是对的,结果确实是BUF+的是N的地址,而不是N里面的数值,所以昨晚试验了很久。
wye11083
2楼-- · 2020-01-18 22:44
所有的CPU都不能直接加变量,如果要通过变址寻址,就必须得通过寄存器间接访问或专用指令。
dz20062008
3楼-- · 2020-01-19 00:13
 精彩回答 2  元偷偷看……
dz20062008
4楼-- · 2020-01-19 04:15
上面n与buf对应了一个内存单元,不是常量。也可以直接对应常量。还是先看看51指令集比较好!不然提问题都困难!
dz20062008
5楼-- · 2020-01-19 10:07
为什么手机看不到有些楼的发言
banyai
6楼-- · 2020-01-19 10:51
MOV        BUF+2,A,这个指令中的+是预编译时就算好的,所以只能是常数。如果其中一个是变量,就里要用汇编指令运算了,比如10楼的方法。

一周热门 更多>