摘要: 循环 字符串指令和寻址方式 循环 LOOP 重复循环,直到计数器的值为0,每次循环将计数器的值减1,如果计数器为0就跳转到指定地址,比如loop short 401007。 LOOPZ,LOOPE 重复循环,直到零标志位Z被置为1。 LOOPNZ,LOOPNE 重复循环,直到零标志位被置为0。 LO 阅读全文
posted @ 2020-05-21 10:37 凯旋.Lau 阅读(584) 评论(0) 推荐(0) 编辑
摘要: call和ret call指令 cal指令是转移到指定的子程序处,后面紧跟的操作数就是给定的地址。 例如,call 401362表示转移到地址401362处,调用401362处的子程序,当子程序调用完毕之后就返回到call指令的下一条语句处。 如果想要跟踪子程序内部,可以按F7跟进; 如果只是想先看 阅读全文
posted @ 2020-05-21 10:07 凯旋.Lau 阅读(697) 评论(0) 推荐(0) 编辑
摘要: 比较和条件跳转 CMP 比较两个操作数,相当于SUB指令,但是相减的结果不保存到第一个操作数,而是根据相减的结果来改变零标志位。当两个操作数相等时,零标志位Z置为1。 两个操作数不相等时,零标志位Z被置为0,而且如果第一个操作数大于第二个操作数,符号位S被置为0;如果第一个操作数小于第二个操作数,符 阅读全文
posted @ 2020-05-21 10:05 凯旋.Lau 阅读(1223) 评论(0) 推荐(0) 编辑
摘要: 数学指令 INC和DEC 分别执行增加1和减少1的操作。 ADD 该指令有两个操作数,相加后的结果存放到第一个操作数中。 ADDC 带进位的加法 两个操作数的和加上进位标志的值,结果存放到第一个操作数中。 SUB 和ADD相反,将第一个操作数减去第二个操作数,结果存放到第一个操作数中, SBB 和A 阅读全文
posted @ 2020-05-21 10:03 凯旋.Lau 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 汇编指令 NOP 无操作 运行这条指令时,不会对寄存器、内存以及堆栈造成任何影响,也就是无操作。 当用一个短指令来替换一个长指令时,如果处理器没有错误,多余的空间将会被NOP填充。 适当数目的NOP指令可以将其他指令完全替换掉。 PUSH 将操作数压入到堆栈顶部,新压入的值总是在堆栈的顶部,不会改变 阅读全文
posted @ 2020-05-21 10:00 凯旋.Lau 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 寄存器 寄存器的概念和作用 寄存器是CPU内部的高速存储单元,访问速度比常规内存快很多。 处理器在执行程序时,需要一个助手,当执行一条指令时,比如将两个内存单元中存放的内容相加,处理器需要先把其中一个内容放入到寄存器中,然后在把另一个内容放入,这就是使用寄存器的一个例子。 OD寄存器窗口中显示的寄存 阅读全文
posted @ 2020-05-21 09:59 凯旋.Lau 阅读(620) 评论(0) 推荐(0) 编辑