自学汇编,问几个自己不懂的问题~希望得到大家的帮助
1、将结果数据取偏移地址送DI ,自己看到有两条指令LEA DI,RESULT
MOV DI,OFFSET RESULT
Q:这两条指令的作用是完全相同的吗?是否可以相互替换。
2、DI 和[DI] 有什么区别?希望能举例说明。
3、书上解释MOVSB指令以±1形式修改偏移地址,我在看书的过程中发现 例题的程序解释为 修改偏移地址+1.
Q:如何判断+1和-1的情况,或者说不需要判断?
4、有一个程序题目是判断16个10位二进制数是否小于等于200H。但是在程序编写过程中给出了下面几条指令
PRO: MOV AH,BYTE PTR SOURCE[BX]
MOV AL,BYTE PTR SOURCE[BX+1]
CMP AX, 8000H
Q: 程序中对AX和8000H 进行比较,是书本的错误,还是因为数值移位,所以要写8000H?
5、有符号条件转移和无符号条件转移在什么场合下要进行区别?书上对于带符号条件数的转移采用了一个表格,表格说明中这样写到:
JG/JNLE 高于/低于且不等于时转移
JGE/JNL 高于或等于/低于时转移
JL/JNGE 高于/低于时转移
我现在对这几个解释十分的不了解,比如第二个 高于或等于/低于时转移 那不是包含和所以的情况嘛,岂不是成了任何情况下都会转移?我知道我的理解有问题,所以希望前辈们指正。
最后我想问,条件转移指令多而复杂,要全部记下来有很大的困难,而且很容易混淆,请问前辈们有什么实用的区分方法?希望能不吝赐教。谢谢大家~~~