搜索
bottom↓
回复: 27

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

[复制链接]

出0入0汤圆

发表于 2012-4-21 04:12:46 | 显示全部楼层 |阅读模式
本帖最后由 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

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

       

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2012-4-21 04:30:30 | 显示全部楼层
楼主也是夜猫子呢。

出0入0汤圆

 楼主| 发表于 2012-4-21 04:34:05 | 显示全部楼层
guowei681 发表于 2012-4-21 04:30
楼主也是夜猫子呢。

是呀,在想上面问题,不知怎样才能达到我要的要求

出0入0汤圆

发表于 2012-4-21 04:35:25 | 显示全部楼层
汇编我帮不了你哦。看你的逻辑是对的呀

出0入0汤圆

 楼主| 发表于 2012-4-21 04:39:08 | 显示全部楼层
guowei681 发表于 2012-4-21 04:35
汇编我帮不了你哦。看你的逻辑是对的呀

经测试确实是不行的
加的地址不是2,而是N的地址数值了

出0入0汤圆

发表于 2012-4-21 04:47:05 | 显示全部楼层
程序菜菜鸟呢,用到是51么。?改换C呢,MOV        N,#2常数2放到N这个寄存器中。N 是啥?在寄存器中有么有定义冲突的。
MOV        A,#100               
MOV        BUF+N,A

出0入0汤圆

 楼主| 发表于 2012-4-21 04:52:15 | 显示全部楼层
本帖最后由 GZLJZ 于 2012-4-21 04:54 编辑
guowei681 发表于 2012-4-21 04:47
程序菜菜鸟呢,用到是51么。?改换C呢,MOV        N,#2常数2放到N这个寄存器中。N 是啥?在寄存器中有么 ...


是51的,N是随便命名的寄存器名称,N即等于30H寄存器

出0入0汤圆

发表于 2012-4-21 04:53:36 | 显示全部楼层
你看下手册,换一个命名看下,是不是N和内部寄存器冲突,这个可能性比较大,本人程序很菜,能帮到你的也很有限,忘见谅先休息吧,朋友。

出0入0汤圆

 楼主| 发表于 2012-4-21 04:55:29 | 显示全部楼层
guowei681 发表于 2012-4-21 04:53
你看下手册,换一个命名看下,是不是N和内部寄存器冲突,这个可能性比较大,本人程序很菜,能帮到你的也很 ...

呵呵,谢了,也该休息了,不然天都快亮了

出0入0汤圆

发表于 2012-4-21 05:59:50 | 显示全部楼层
  1. n data 30h
  2. buf data 70h

  3. loop:
  4. mov n,#2
  5. mov a,#buf
  6. add a,n
  7. mov r0,a
  8. mov a,#100
  9. mov @r0,a
  10. ljmp loop
  11. end
复制代码

出0入0汤圆

发表于 2012-4-21 09:19:51 | 显示全部楼层
BUF   DATA    70H
N      DATA    30H

即 BUF   =   70H
    N      =    30H

当执行
MOV        BUF+N,A

是将A中的值传送到地址为A0H的寄存器中,即送到端口 P2

出0入0汤圆

发表于 2012-4-21 09:24:42 | 显示全部楼层
10楼正确,变址访问,只能通过@R0

出0入0汤圆

发表于 2012-4-21 11:06:31 | 显示全部楼层
guowei681 发表于 2012-4-21 04:30
楼主也是夜猫子呢。

好像搞这个的都有熬夜的习惯,对汇编就爱莫能助了,不过已经有人解决了,在这里也学习了.

出0入0汤圆

 楼主| 发表于 2012-4-21 11:40:17 | 显示全部楼层
本帖最后由 GZLJZ 于 2012-4-21 12:40 编辑

刚醒来,谢谢各位,
10楼代码等会我试下,谢谢,(刚试了,确实是好办法,谢了,我用了这么久汇编,还不知ADD可以加地址的,以前以为加的是数值,哦关键mov a,#buf这句     把buf的地址赋值给了A)
11楼也是对的,结果确实是BUF+的是N的地址,而不是N里面的数值,所以昨晚试验了很久。

出0入442汤圆

发表于 2012-4-21 13:03:20 | 显示全部楼层
所有的CPU都不能直接加变量,如果要通过变址寻址,就必须得通过寄存器间接访问或专用指令。

出145入215汤圆

发表于 2012-4-22 03:37:48 来自手机 | 显示全部楼层
没听说什么72寄存器的!
N     EQU 20H
BUF EQU 21H

MOV A,N
ADD A,BUF
MOV R0,A
MOV @R0,#100D

SJMP $

出145入215汤圆

发表于 2012-4-22 03:47:00 来自手机 | 显示全部楼层
上面n与buf对应了一个内存单元,不是常量。也可以直接对应常量。还是先看看51指令集比较好!不然提问题都困难!

出145入215汤圆

发表于 2012-4-22 06:52:35 | 显示全部楼层
为什么手机看不到有些楼的发言

出0入4汤圆

发表于 2012-4-22 07:38:27 | 显示全部楼层
MOV        BUF+2,A,这个指令中的+是预编译时就算好的,所以只能是常数。如果其中一个是变量,就里要用汇编指令运算了,比如10楼的方法。

出0入0汤圆

发表于 2016-12-18 13:07:07 | 显示全部楼层
记号 MARK

出10入113汤圆

发表于 2016-12-18 14:00:53 | 显示全部楼层
汇编指令怎么可能有直接在语句中运算加法的啊?

出0入0汤圆

发表于 2016-12-18 14:58:40 | 显示全部楼层
听说4点最容易猝死         

出0入0汤圆

发表于 2016-12-18 15:46:00 | 显示全部楼层
什么单片机的汇编

出0入0汤圆

发表于 2016-12-18 16:01:10 | 显示全部楼层
用@R或者dptr+A指令可以实现

出0入0汤圆

发表于 2016-12-18 21:22:02 | 显示全部楼层
lxa0 发表于 2016-12-18 16:01
用@R或者dptr+A指令可以实现

僵尸贴都花出来?
@R指向RAM,
DPTR指向XDATA(MOVX)或ROM (MOVC)

出0入4汤圆

发表于 2016-12-18 23:28:58 来自手机 | 显示全部楼层
本人也玩汇编的,想找工作,有没有人收留啊

出0入0汤圆

发表于 2016-12-19 19:31:11 | 显示全部楼层
diyplayer 发表于 2016-12-18 23:28
本人也玩汇编的,想找工作,有没有人收留啊

我也玩汇编的
不过找工作的事帮不上你
抱歉

出0入0汤圆

 楼主| 发表于 2016-12-20 11:44:42 | 显示全部楼层
呵呵,4年前的事了,现在已全部使用C语言了,当前使用汇编那个累呀。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-17 04:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表