• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

汇编ADD M,m与ADD M,a的有什么区别,结果是不同的

凡Whale 2017-08-21 浏览量:806

//---------------------------------------------------------

 1. 寄存器相加

格式:ADD M, m
操作:(M)+(acc) → (M)
影响状态位: C, DC, Z
指令周期:1
例:ADD TEMP,m
指令执行前 TEMP=0FH
A=0F0H
指令执行后 TEMP=0FFH
A=0F0H
2. 寄存器相加
格式:ADD M, a
操作:(M)+(acc) → (acc)
影响状态位:C, DC, Z
指令周期:1
例:ADD TEMP,a
指令执行前 TEMP=0FH
A=0F0H
指令执行后 TEMP=0FH
A=0FFH

//----------------------------------------------------------------------------------


这两个指令不是一样的么 ?  就只是 一个是ADD M,m    另一个是ADD M,a   为什么结果是不一样的? 

//---------------------------------------------------------------------------------

这是在需要用的指令集手册上看到的

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 光看這段描述可能不知道什麼

    但Data sheet應該有描述M a是什麼

    可猜測M 是Memory存放

    A是 Register自身


    • 发布于 2017-08-23
    • 举报
    • 评论 1
    • 1
    • 0
凡Whale 回复了 MOP:谢谢,已解决 回复

其他答案 数量:3
  • 一般在汇编里ADD指令是作用在第一个参数里的,就是楼主提到的第一种方式。感觉这个像是厂商编写文件时出错,问下厂商确认下这两个指令。

    另外,a这个寄存器可能是累加寄存器的意思,数据输出都是累加寄存器里输出的。

    • 发布于2017-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 汇编里面A是一个特定的寄存器叫ALU,是算术逻辑单元,而楼主说的M和m应该是变量。ADD M,a是把ALU暂存的数据加到M里面,而ADD M,m就是M=M+m的意思。

    • 发布于2017-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 一个是把结果放在内存中,另一个是把结果放在累加器(特殊功能寄存器)里面吧。
    • 发布于2017-08-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

汇编ADD M,m与ADD M,a的有什么区别,结果是不同的