80x86指令系统详解:无条件转移与段内短转移

需积分: 0 3 下载量 134 浏览量 更新于2024-08-25 收藏 2.92MB PPT 举报
"本文主要介绍了80x86指令系统中的无条件转移指令—段内直接短转移,以及80x86指令系统的概述和分类。" 80x86指令系统是Intel 80x86系列处理器的核心组成部分,它定义了CPU能够执行的所有基本操作。在这一系统中,指令分为硬指令、伪指令和宏指令。 硬指令,或可执行语句,是实际被执行的二进制代码,它们代表了CPU的各种基本功能,如数据传输、算术运算等。例如,`MOV AX, BX`这条指令用于将寄存器BX的内容移动到寄存器AX中。当汇编语言源程序被汇编时,每条硬指令都会转换成相应的机器码,供CPU执行。 伪指令,如段定义、变量分配等,是在编译时由汇编器处理的指令,它们并不直接生成机器代码。例如,`code SEGMENT`定义了一个代码段,`MOV BX, OFFSET string`获取字符串的偏移地址。在程序执行时,CPU并不会处理伪指令,它们的作用在汇编阶段就已经完成。 无条件转移指令—段内直接短转移(JMP SHORT OPR)是一种控制程序流程的指令,常用于条件判断后的跳转。它的格式为`JMP SHORT OPR`,其中OPR是一个标号,指向目标指令。在汇编源程序中,这个标号会被转换成8位二进制数,表示目标指令相对于当前指令的偏移量。由于这是一个带符号数,转移范围为-128到+127,可以向前或向后转移。新IP(指令指针)的计算方法是将当前IP加上8位位移量,从而确定下一条要执行的指令地址。 80x86指令格式通常包含两种形式:机器指令和符号指令。机器指令是CPU直接执行的二进制代码,而符号指令,如`MOVAL, 1`,则使用助记符和语法来方便程序员编写,需要通过汇编过程转换成机器指令。符号指令的格式通常包括操作码、操作数以及可能的寻址模式。 总结来说,80x86指令系统提供了丰富的指令集,使得程序员能够编写出复杂的程序,并通过无条件转移指令控制程序的执行流程。无条件转移指令—段内直接短转移是其中一种,它通过8位位移量实现短距离的程序跳跃,适应于各种条件分支和循环结构。了解这些指令对于理解和编写80x86汇编程序至关重要。