汇编问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编问题相关的知识,希望对你有一定的参考价值。
试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。
MOV A,R2
ADD A,R4
MOV R6,A
MOV A,R1
ADDC A,R3
MOV R5,A
为什么R2和R4相加用ADD,而R1和R3相加却用ADDC
ADD 是只 两数相加,不加进位
ADDC 两数相加,同时再加 进位位
mov a,r2 把r2传给a
ADD A,R4 是 r2 和r4 相加,但不算进位的数
MOV R6,A 是把相加后的结果给了 r6
MOV A,R1 把r1 给a
ADDC A,R3 是r3 和r1相加 并加上低位相加的进位 也就是 r2和r4 相加的进位1就加1 0就加0
MOV R5,A 把r3和r1相加后的结果a给r5
还是汇编的基础没有学好来自:求助得到的回答 参考技术A R2,R4算是低位,低位运算可能会产生进位,进位要参与到高位的运算中的 参考技术B ADC吧? ADC是指连CF位一起加上
长汇编代码问题
【中文标题】长汇编代码问题【英文标题】:long assembly code problem 【发布时间】:2010-12-17 12:45:27 【问题描述】:我有一个汇编程序,但是当我添加一些代码行时,它会变得混乱。 例如,当我在此程序工作时添加一个新程序时,整个程序会卡在某个点,就像它没有完成程序但停留在特定点一样。当我添加一些不影响程序的命令时也会发生同样的情况,就像代码开头的一些 mov [300h],00h。
知道如何解决这个问题吗? 我读过 jmp 命令只能跳转 128 个地址范围。真的吗?我可以绕过这个吗? 我已经看到一些程序有一个“接近”的扩展。喜欢
测试过程接近 mov al,[0300h] ... 回复 测试结束那是怎么回事?这可以帮助我吗?谢谢!
【问题讨论】:
【参考方案1】:首先,mov [300h],00h
不会影响程序。它可以很好地修改你的代码,所以不要这样做!
其次,只有条件跳转(Jcc)对-128..+127地址范围有这个限制,所以如果你认为分支太远,那么就不要
JE some_far_label
使用
JNE skip1
jmp some_far_label
skip1:
如果您还有其他问题,请发布一些代码。
编辑:mov byte [300h], 0
可能会覆盖您的代码。如果您使用的是汇编程序,则为变量分配空间:
var1 db 0
【讨论】:
非常感谢。有什么参考资料可以让我阅读有关此类场合的更多信息吗?例如 mov [300h],00h 如何影响我的代码?以上是关于汇编问题的主要内容,如果未能解决你的问题,请参考以下文章