微机原理 3-3指令系统Ⅴ控制转移
微机原理指令系统讲解
2012-3-21
10
四、寄存器间接寻址(Register Indirect 寄存器间接寻址 Addressing) MOV AX,[DI] 指令中的16位寄存器的内容不是操作数,而是 指令中的 位寄存器的内容不是操作数, 位寄存器的内容不是操作数 操作数的偏移地址,操作数本身则在存储器中。 操作数的偏移地址,操作数本身则在存储器中。 可用的寄存器有四个,分别是: 、 、 可用的寄存器有四个,分别是:SI、DI、BX 和BP,但如果使用不同的间址寄存器,则相 ,但如果使用不同的间址寄存器, 应的段寄存器有所不同
2012-3-21 23
一般传送指令MOV (Movement) ⑴ 一般传送指令 MOV dest,src ;(dest)←(src) ← 既可传送字节操作数( 位 既可传送字节操作数(8位),也可传送 字操作数( 位 字操作数(16位); 可使用本章讨论过的各种寻址方式; 可使用本章讨论过的各种寻址方式; 可实现以下各种传送: 可实现以下各种传送:
2012-3-21 26
堆栈操作指令PUSH和POP (Push ⑵ 堆栈操作指令 和 word onto stack, Pop word off stack) 堆栈是内存中一个特定的区域, 堆栈是内存中一个特定的区域,用以存放 寄存器或存储器中暂时不用但又必须保存 的数据。 的数据。
2012-3-21
2012-3-21 7
直接寻址: MOV AX,[3200H] 如果DS=5000H,则所 寻找的操作数的物理 地址: 5000H×10H+3200H =50000H+3200H =53200H
2012-3-21 8
段超越 : MOV BX,ES:[2100H]
2012-3-21
单片微机原理及应用课后习题答案
单片微机原理及应用课后习题答案第一章单片机基础1-1单片机的发展分为几个阶段?答:到目前为止,单片机的发展大致分为五个阶段:第一阶段:单片机发展的初级阶段。
第二阶段:低性能单片机阶段。
第三阶段:高性能单片机阶段。
第四阶段:16位MCU。
第五阶段:单片机在集成度、功能、速度、可靠性、应用领域等方面向更高水平发展。
1-2说明单片机的主要应用领域?答:由于单片机具有体积小、重量轻、价格便宜、功耗低、易扩展、可靠性高、控制功能强及运算速度快等特点,在国民经济建设、军工产品及家电器等领域得到了广泛的应用。
主要是:① 工业自动化;② 智能仪器;③ 消费电子产品;④ 表达⑤ 军品;⑥ 终端和外部设备控制;⑦ 多机分布式系统。
1-3mcs-51系列单片机芯片包括哪些功能部件?每个功能部件的功能是什么?答:MCS-51系列列单片机的内部结构:1.中央处理器cpu。
其主要完成单片机的运算和控制功能,mcs-51系列单片机的cpu不仅可以处理字节数据,还可以进行位变量的处理。
2.片内数据存储器ram。
ram用于存储单片机运行中的工作变量、中间结果和最终结果等。
3.片内程序存储器rom/eprom。
程序存储器既可以存放已编制的程序,也可以存放一些原始数据和表格。
4.特殊功能寄存器sfr。
sfr用以控制和管理内部算术逻辑部件、并行i/o口、定时/计数器、中断系统等功能模块的工作。
5.并行口。
一共有4个8位的并行i/o口:p0、p1、p2、p3。
p0是一个三态双向口,可作为地址/数据分时复用口,也可作为通用i/o口。
p1只能作为通用i/o口。
p2可以作为通用i/o口,也可作为在单片机扩展外部设备时,高8位地址总线使用。
p3除了作为通用准双向i/o接口外,各引脚还具有第二功能。
6.串行口。
有一个全双工的串行口,可以实现单片机与外设之间数据的逐位传送。
7.定时/计数器。
可以设置为定时方式或计数方式。
1-4mcs-51系列MCU的引脚中有多少条I/O线?它们类似于单片机的外部地址总线和数据总线什么关系?地址总线和数据总线各是多少位?说明准双向口的含义?答:mcs-51一共共有32个I/O引脚。
微机原理知识点归纳总结
微机原理知识点归纳总结微机原理是计算机专业的基础课程之一,它是学习计算机硬件和软件原理的入门课程。
本文将对微机原理课程的主要知识点进行归纳总结,希望可以帮助读者更好地理解微机原理,并为日后的学习和工作提供帮助。
一、计算机系统计算机系统是由硬件和软件两部分组成的,硬件是计算机的物理构成,软件是控制硬件工作的程序。
计算机系统的主要组成部分包括中央处理器(CPU)、存储器、输入输出设备(I/O设备)和总线。
1. 中央处理器(CPU)中央处理器是计算机系统的核心部件,它负责执行计算机程序的指令和控制计算机的操作。
中央处理器由运算器和控制器两部分组成,运算器负责执行算术和逻辑运算,控制器负责控制指令的执行顺序和数据的流动。
2. 存储器存储器是计算机系统用来存储数据和程序的设备,它分为主存储器(RAM)和辅助存储器(ROM、硬盘等)。
主存储器用来临时存储程序和数据,辅助存储器用来长期存储程序和数据。
3. 输入输出设备(I/O设备)输入输出设备用来与外部环境进行交互,包括键盘、鼠标、显示器、打印机等。
它们负责将数据输入到计算机系统中或者将计算机系统的输出结果显示或打印出来。
4. 总线总线是计算机系统各个部件之间传输数据和控制信号的通道,它分为地址总线、数据总线和控制总线。
地址总线用来传输地址信息,数据总线用来传输数据,控制总线用来传输控制信号。
二、数据的表示和运算1. 二进制数计算机是以二进制形式进行运算的,因此需要了解二进制数的表示和运算规则。
二进制数由0和1组成,其表示方法和十进制数类似,但是各位上的权值是2的幂次方。
2. 字符编码计算机系统中的字符是使用字符编码进行表示的,常用的字符编码包括ASCII码和Unicode。
ASCII码是美国标准信息交换码,每个字符用一个字节表示;而Unicode是一种全球字符集,包括了几乎所有国家的字符,每个字符用两个字节表示。
3. 整数表示和运算计算机系统中的整数是通过二进制补码形式进行表示和运算的。
微机原理2007年-第三章-指令系统第五节控制转移
③ 段间直接转移 段间直接转移
指令中给出的16位的段和 位的偏移地址送到CS和IP。 指令中给出的16位的段和16位的偏移地址送到CS和IP。 位的段和16位的偏移地址送到
④ 段间间接转移 段间间接转移
MEM中给出的 位的段和 位的偏移地址送到CS和IP。 MEM中给出的16位的段和16位的偏移地址送到CS和IP。 中给出的16位的段和16位的偏移地址送到
6
例:代码段内有一条无条件转移指令
JMP SHORT NEXT 指令本身占有两个字节 操作码占一个字节; 位位移量占有一个字节 操作码占一个字节;8位位移量占有一个字节
内存
... 源程序 : 条件转移指令: 条件转移指令:JMP SHORT next qqq: ... ... next: MOV AL,03H
5
① 段内直接转移 转移的目标地址由指令直接给出。 段内转移,故转移后CS内容保持不变, 段内转移,故转移后CS内容保持不变,只改 变IP的值。 IP的值。
汇编语言中格式 JMP SHORT OPRD JMP NEAR PTR OPRD 位移量 转移范围 8位 -128~+127 128~ 16位 16位 -32768~+32767 32768~
13
JMP DWORD PTR [SI]的机器码 11111111 11101100 DS:[SI]
4000 DS +) 1212 SI 41212 41212 41213 41214 41215
00 10 00 4A
1000 4A00
IP CS
段间间接转移操作示意图
14
(2)条件转移指令 (2)条件转移指令 - JXX 条件转移指令可实现程序的条件分支。 条件转移指令根据标志位的状态来决定是 否进行分支转移。(判位转移) 格式: JXX label xx为条件名称缩写 ;xx为条件名称缩写 指令的转移范围为-128~+127字节。 指令的转移范围为-128~+127字节。
微机原理指令
微机原理指令微机原理指令是计算机中非常重要的概念,它是计算机能够理解和执行的基本操作指令。
微机原理指令包括了数据传输指令、算术运算指令、逻辑运算指令、转移指令等等,它们构成了计算机程序的基础,是计算机进行各种运算和操作的基础。
在学习和理解微机原理指令时,我们需要对各种指令的功能、格式、操作方法等有着清晰的认识,下面将对微机原理指令进行详细的介绍。
首先,数据传输指令是微机原理指令中的一类重要指令,它包括了将数据从一个位置传送到另一个位置的操作。
数据传输指令可以分为直接数据传送指令和间接数据传送指令。
直接数据传送指令是将数据直接从一个寄存器传送到另一个寄存器,而间接数据传送指令则是通过地址传送数据。
这些指令对于计算机的数据处理操作起着至关重要的作用,能够实现对数据的高效管理和处理。
其次,算术运算指令也是微机原理指令中的重要内容。
在计算机中,进行各种数值计算是非常常见的操作,而算术运算指令则是实现这些计算的基础。
算术运算指令包括了加法指令、减法指令、乘法指令、除法指令等等,它们能够对数据进行各种数值运算,为计算机的数据处理提供了强大的支持。
另外,逻辑运算指令也是微机原理指令中的重要内容。
逻辑运算指令包括了与运算指令、或运算指令、非运算指令、异或运算指令等等,它们能够对数据进行各种逻辑运算,实现对数据的逻辑处理和控制。
逻辑运算指令在计算机的逻辑控制和条件判断中起着至关重要的作用,能够实现对计算机程序流程的灵活控制。
最后,转移指令也是微机原理指令中的重要内容。
转移指令能够实现对程序执行流程的控制,包括了无条件转移指令和有条件转移指令。
无条件转移指令能够直接改变程序的执行顺序,而有条件转移指令则是在满足一定条件下才能改变程序的执行顺序。
转移指令在计算机程序的控制和跳转中起着非常重要的作用,能够实现对程序执行流程的灵活控制和跳转。
综上所述,微机原理指令是计算机中非常重要的概念,它包括了数据传输指令、算术运算指令、逻辑运算指令、转移指令等等,它们构成了计算机程序的基础,是计算机进行各种运算和操作的基础。
微机原理接口技术03_指令系统
3.2.1 数据的寻址方式
基址变址寻址同样适用于数组或表格处理,首地 址存放在基址寄存器中,变址寄存器访问数组中各元
素。因两个寄存器都可以修改,所以它比寄存器相对
寻址方式更灵活。需要注意的是,两个寄存器不能均 为基址寄存器,也不能均为变址寄存器。
3.2.1 数据的寻址方式
7.基址变址相对寻址 (Relative Based Indexed Addressing) 操作数的有效地址为指令中规定的1个基址寄存 器和1个变址寄存器的内容及指令中指定的位移量三 者之和。 位移量[基址寄存器][变址寄存器] 可以表示成多种形式组合。寻址寄存器要放在方括 号中。
3.2.1 数据的寻址方式
4.寄存器间接寻址(Register Indirect Addressing) 操作数的有效地址存放在基址寄存器或变址寄存 器中,而操作数则在存储器中。对16位数进行寄存器 间接寻址时可用的寄存器是基址寄存器BX、BP和变 址寄存器SI、DI。使用BP时默认的段寄存器为SS, 使用其他寄存器默认的段寄存器为DS。 操作数有效地址格式为:[间接寻址的寄存器]。 寻址寄存器放在方括号中。
CPU执行指令时,指令是按顺序存放在存储器 中的,而程序执行顺序是由CS和IP的内容来决定的。 当程序执行到某一转移或调用指令时,需脱离程序 的正常顺序执行,而把它转移到指定的指令地址, 程序转移及调用指令通过改变IP和CS内容,就可改 变程序执行顺序。
3.2.2 程序转移地址寻址方式
根据程序转移地址相对于当前程序地址的关 系,可分为段内、段外;又根据转移地址是否直 接出现在指令中,分为直接、间接,所以有四种 程序转移寻址方式:段内直接寻址、段内间接寻
第3章
指令系统
指令是计算机用以控制各个部件协调
微机原理第3章-指令系统
▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB
码
器
PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:
微机原理6_控制转移类指令
还可用SAR、ROR和RCR指令
;将AX的最低位D0移进CF
jnc even
;标志CF=0,即D0=0:AX内是偶数,程序转移
add ax,1
;标志CF=1,即D0=1:AX内的奇数,加1
even: shr ax,1
;AX←AX÷2
第2章:例题2.22解答3 用JNS指令实现
mov bx,ax
ror bx,1
done: ……
第2章:例2.24 偶校验
;对DL寄存器中8位数据进行偶校验 ;校验位存入CF标志
2:将最低位用移位指令移至进位标志,判断进位标志是0, AX就是偶数;否则,为奇数
3:将最低位用移位指令移至最高位(符号位),判断符号 标志是0,AX就是偶数;否则,为奇数
第2章:例题2.22解答1 用JZ指令实现
test ax,01h
;测试AX的最低位D0(不用AND指令,以免改变AX)
jz even
第2章:无条件转移指令JMP(jump)
JMP label
;段内转移、相对寻址
;IP←IP+位移量
演示
JMP r16/m16
;段内转移、间接寻址
;IP←r16/m16
演示 演示
JMP far ptr label ;段间转移、直接寻址
;IP←偏移地址,CS←段地址
演示
JMP far ptr mem ;段间转移,间接寻址
第2章:例题2.22
题目:将AX中存放的无符号数除以2,如果是奇 数则加1后除以2 问题:如何判断AX中的数据是奇数还是偶数? 解答:判断AX最低位是“0”(偶数),还是“1” (奇数)。可以用位操作类指令
1:用逻辑与指令将除最低位外的其他位变成0,保留最低位 不变。判断这个数据是0,AX就是偶数;否则,为奇数
微机原理指令大全
微机原理指令大全微机原理是计算机专业的一门重要课程,它主要研究计算机系统的基本组成和工作原理。
在微机原理课程中,指令是一个非常重要的概念,它是计算机能够理解和执行的基本操作命令。
本文将对微机原理中常见的指令进行详细介绍,帮助读者更好地理解和掌握这一知识点。
1. 数据传送指令。
数据传送指令是微机中最基本的指令之一,它用于将数据从一个位置传送到另一个位置。
常见的数据传送指令包括MOV、LDM、STM等。
MOV指令用于将数据从一个存储单元传送到另一个存储单元,LDM指令用于将数据从内存中加载到寄存器中,STM指令用于将数据从寄存器中存储到内存中。
这些指令在程序设计中应用广泛,是程序运行过程中不可或缺的一部分。
2. 算术运算指令。
算术运算指令用于对数据进行加减乘除等算术运算,常见的算术运算指令包括ADD、SUB、MUL、DIV等。
ADD指令用于将两个操作数相加,SUB指令用于将一个操作数减去另一个操作数,MUL指令用于将两个操作数相乘,DIV指令用于将一个操作数除以另一个操作数。
这些指令在编程中经常用到,能够实现各种复杂的算术运算。
3. 逻辑运算指令。
逻辑运算指令用于对数据进行逻辑运算,常见的逻辑运算指令包括AND、OR、NOT、XOR等。
AND指令用于对两个操作数进行与运算,OR指令用于对两个操作数进行或运算,NOT指令用于对操作数进行取反运算,XOR指令用于对两个操作数进行异或运算。
这些指令在逻辑判断和条件控制中起着重要作用,能够实现各种复杂的逻辑运算。
4. 控制转移指令。
控制转移指令用于改变程序的执行顺序,常见的控制转移指令包括JMP、CALL、RET、JZ、JNZ等。
JMP指令用于无条件跳转到指定的地址,CALL指令用于调用子程序,RET指令用于从子程序返回,JZ指令用于在零标志位为真时跳转,JNZ指令用于在零标志位为假时跳转。
这些指令在程序的控制流程中起着关键作用,能够实现复杂的程序控制逻辑。
微机原理指令大全
微机原理指令大全微机原理是计算机科学中的重要基础知识,而指令则是微机原理中的核心内容之一。
指令是计算机中的基本操作命令,它直接影响着计算机的运行和执行效率。
本文将为大家详细介绍微机原理中常见的指令,并提供一份完整的指令大全,希望能够帮助大家更好地理解和掌握微机原理中的指令知识。
一、数据传送指令。
数据传送指令是微机原理中最基本的指令之一,它用于将数据从一个地方传送到另一个地方。
常见的数据传送指令包括MOV、LDM、STM等。
这些指令可以实现寄存器之间、寄存器和内存之间、内存和输入输出设备之间的数据传送操作,是计算机程序中不可或缺的一部分。
二、算术运算指令。
算术运算指令用于进行各种数值计算操作,包括加法、减法、乘法、除法等。
常见的算术运算指令有ADD、SUB、MUL、DIV等。
这些指令可以对寄存器和内存中的数据进行各种算术运算,是计算机程序中常用的指令之一。
三、逻辑运算指令。
逻辑运算指令用于进行各种逻辑操作,包括与、或、非、异或等。
常见的逻辑运算指令有AND、OR、NOT、XOR等。
这些指令可以对寄存器和内存中的数据进行逻辑运算,是计算机程序中实现逻辑判断和控制流程的重要指令之一。
四、转移指令。
转移指令用于改变程序的执行顺序,包括无条件转移和条件转移两种。
常见的转移指令有JMP、JZ、JNZ、JC、JNC等。
这些指令可以实现程序的跳转和循环控制,是计算机程序中实现各种复杂逻辑的重要指令之一。
五、比较指令。
比较指令用于比较两个数据的大小关系,常见的比较指令有CMP、TEST等。
这些指令可以对寄存器和内存中的数据进行比较操作,并根据比较结果设置标志位,是实现条件转移和逻辑判断的重要指令之一。
六、输入输出指令。
输入输出指令用于实现计算机与外部设备的数据交换,包括输入数据和输出数据两种操作。
常见的输入输出指令有IN、OUT等。
这些指令可以实现计算机与外部设备之间的数据传输,是计算机程序中实现输入输出功能的重要指令之一。
单片微机原理第三章A3逻辑运算指令-文档资料
2.ORL类指令(6条) 功能:将源操作数内容与目的操作数内容按位逻 辑“或”,结果存入目的操作数指定单元中, 源操作数不变。
ORL ORL ORL ORL ORL ORL A,Rn ;A∨Rn→A A,direct ;A∨(direct)→A A,@Ri ;A∨(Ri)→A A,#data ;A∨data→A direct,A ;(direct)∨A→(direct) direct,#data;(direct)∨data→(direct)
3.2.3 逻辑运算指令(24条)
一、 逻辑与、或、非、异或指令 1.ANL类指令(6条) 其功能:将源操作数内容和目的操作数内容按位相 “与”,结果存入目的操作数指定单元,源操作数不变。 ANL A,Rn ;A∧Rn→A ANL A,direct ;A∧(direct)→A ANL A,@Ri ;A∧(Ri)→A ANL A,#data ;A∧data→A ANL direct,A ;(direct)∧A→(direct) ANL direct,#data ;(direct)∧data→(direct)
3.XRL类指令(6条)
功能:将两个操作数指定内容按位“异或”,结果存 于目的操作数指定单元中。“异或”原则是相同为 “0”,相异为“1”。 XRL XRL XRL XRL XRL XRL A,Rn ;A Rn→A A,direct ;A (direct)→A A,@Ri ;A (Ri)→A A,#data ;A data→A direct,A ;(direct) A→(direct) direct,#data;(direct) data→(direct)
LJMP addl6 ;addl6→PC无条件跳转到addl6 ;地址,可在64KB范围内转移, ;称为长转移指令 AJMP add11 ;add11→PC,无条件转向add11 ;地址,只能在2KB范围内转移 SJMP rel ;PC+2+rel→PC相对转移,rel是偏移量, ;它是8位有符号数,范围-128~+127 ;即向后跳转128B,向前可跳转127B JMP @A十DPTR ;A+DPTR→PC,属散转指令, ;无条件转向A与DPTR内容相加后 ;形成的新地址
003_微机原理-指令系统_2
MOV DS, AX
不影响标志位
3.3 指令系统—换码指令
指令书写格式: XLAT
指令执行的操作:
(AL)←((DS:BX+AL)) 查表操作,将BX指定的缓冲区中、AL指定的位移处的一个字节数 据取出赋给AL
指令说明
操作数隐含使用基地址寄存器BX与AL寄存器 换码指令执行前,在主存建立一个字节量表格,内含要转换的目 的码字,表格首地址存放于BX,AL存放相对表格首地址的位移量 换码指令执行后,指令将AL寄存器的内容转换为目标码字,因为 偏移量AL为8位,表格长度≤256字节 不影响标志位
数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令
控制转移指令
处理器控制指令
3.3 指令系统-通用数据传送指令
指令书写格式: MOV dst, src
指令执行的操作:(dst)←(src) 指令说明
操作数类型:立即操作数,寄存器操作数,存储器操作数 立即操作数不能作为目的操作数DST 错误:MOV 30H, AL 两个操作数也不能同时为存储器操作数 错误: MOV [DI+100H], [SI+200H]
dst为目的操作数,操作数类型可为寄存器操 作数或存储器操作数 cnt为移位次数,可为立即数1,或由寄存器 CL指定 SHL、SHR和SAL指令影响标志位CF和OF, cnt=1时,SHL与SAL移位后的最高位和CF不 同,则OF=1;SHR,OF=移位前最高位 SAR指令影响标志位CF、OF、PF、SF、ZF, AF不确定;
; 测试AL中数据的奇、偶
3.3 指令系统-移位指令
逻辑左移指令: SHL dst, cnt 算术左移指令: SAL dst, cnt
微机原理与接口技术第三章指令系统
标识符的构成
符号集合 英文字母(a~Z)、数字(0~9)、特殊符号(?、@、 _、 $)。 构成规则 不可以以数字开头;
不能实用单独的“?”作为标识符;
取名尽量有含义,但不能采用汇编语言的保留字; 助记符、定义符、寄存器名称等 最大长度为31字符。 例如: ABCDH →标识符 0ABCDH →立即数
MOV AX,05C7H 汇编指令 B8C705H
一对一
机器指令
3.1.2 指令格式 汇编语言指令:由操作码和操作数两部分组成。 操作码 操作数 操作数 指令的一般格式
操作码:指示指令要执行的具体操作。用助记符(一 般为英文字母缩写)表示。 操作数:指出指令执行过程中的操作对象。用符号或 符号地址标志。
(×)MOV CS,AX
(×)MOV AH, BX
AH AL BH BL CH CL DH DL
MOV AX, BX
;AX←BX
演示
寄存器寻址方式举例
MOV BX,1234H ;AX=1234H
源操作数是立即数寻址方式
目的操作数是寄存器寻址方式 MOV AX,BX BX=AX=1234H 源操作数和目的操作数均为寄存器寻址方式
AX 88H 66H … 66H 88H … 堆栈段 33200H 33201H
……
……
MOV BX, 1100H MOV AX, [BX]
码段
AX: 0078H
堆栈段
DS:0000H
…… ……
内存内容 偏移地址
0000H 0001H …… 1100H 1101H 1102H
…… ……
78H 00H 56H
微机原理与接口技术:转移指令
说明转移范围,以当前 IP 为中心,转移范围-32768~+32767。
说明:在编程时 NEAR 与 SHORT 通常省略,编译时由汇编程序自己计算。如果用了
NEAR 或 SHORT,在编译时有时会提示不正确的属性限制。所以 JMP LABEL 是最常见
的形式。
由于 LABEL 对应一条指令,是这条指令的符号地址,所以以上三种 JMP 形式又称为
表 3-1 条件转移指令
指令名称 进位转移 无进位转移 等于或为零转移 不等于或非零转移 奇偶校验为偶转移 奇偶校验为奇转移 结果为负转移 结果为正转移 溢出转移 不溢出转移 大于则转移 大于或等于则转移 小于则转移 小于或等于则转移 大于则转移 大于或等于则转移 小于则转移 小于或等于则转移 CX内容为0转移
JMP WORD PTR[BX+DI],从[BX+DI]指明的内存区域连续取出两个字节传送给 IP,程序转 移到 CS:IP 处继续执行。操作数可以采用各种寻址方式。
以上两种 JMP 形式又称为段内间接转移,编程时要注意操作数必须是 16 位。
【例题 3-17】
…
MOV DI, 0
JMP DONE
JMP FAR NEXT JMP 8000:2000H JMP DWORD PTR [DI]
2.条件转移指令
条件转移指令先测试条件,若条件成立则执行转移操作;若不成立则不转移并顺序执行 下一条指令。所有的条件转移指令转移范围-128~+127,属于段内短转移,都不影响状态标 志位。
指令格式: JCC OPRD 功能:若条件成立则转移到 OPRD 处执行,IP IP+位移量。 说明:J 是 JUMP 的缩写,CC 表示转移的条件,OPRD 通常是标号。
微机原理3-3指令系统Ⅴ控制转移
MOV NUM,0 ;清0
MOV SI,2000H ;赋首地址
MOV CX,100 ;给循环次数
AGAIN: MOV AL,[SI] ;取被统计数
OR AL,AL
;影响FR的SF
JNS NOT-NUM ;非负,转移
INC NUM
;负数数量+1
NOT-NUM:INC SI
;地址指向下一个数
定义: 一种非连续而又多次重复的程序段(或叫过程)
特点: 程序中常用到的具有相同功能的部分独立出来形成 。
需要时用调用指令CALL进行调用,子程序结束后,用返 回指令RET再返回原来调用的地方。 优点:
源程序长度缩短,有利于模块化设计,使程序的编制、 阅读和修改都比较方便。
微机原理与接补口充技:术 子 程 序 第3章 指令系统 Ⅴ
例:求S = 1 + 2 + 3 +……+ 100
MOV CX,100 MOV AX,0 MOV DX,0001H REPEAT:ADD AX,DX
INC DX
LOOP REPEAT
HLT
微机原理与接口技术
第3章 指令系统 Ⅴ
2、相等(为零)循环转移指令LOOPE/LOOPZ
形式:LOOPE/LOOPZ short-lable 功能: CX←CX-1;
(五)中断指令
微机原理与接口技术
第3章 指令系统 Ⅴ
(一) 无条件转移指令JMP
格式: JMP OPRD 功能:
若OPRD为16位数,则IPOPRD,实现段内转移; 若OPRD为32位数,则IPOPRD低16,
CSOPRD高16,段间转移。 注解: (1)OPRD常是标号Lable,即某条指令的符号地址。
微机原理3-3指令系统Ⅴ控制转移
1、LOOP 2、LOOPE/LOOPZ 3、LOOPNE/LOOPNZ (四)子程序调用与返回指令 (五)中断指令
特点: (1)段内短距离相对转移指令,控制程序段的循环执行。 (2)循环次数由CX指定。
1、循环转移指令 LOOP
行,否则顺序执行。
(4)JLE—小于等于/不大于转移指令(A≤B) 形式:JLE/JNG 标号 功能:若小于等于(SF≠OF=1 或 ZF=1)转移到标
号处执行,否则顺序执行。 该组指令需要检测SF、OF、ZF位,常与CMP连用
4、计数器为0条件转移指令
JCXZ—计数零转移指令 形式:JCXZ 标号 功能:若CX=0,转移到标号处执行,否则顺序执行。
③、JMP R16 /MEM16;段内间接转移
OPRD是16bit的寄存器或者存储器地址。范围是段内任何 地方。
执行:IP(R16),CS内容不变。
④、JMP FAR PTR Lable ;段间直接转移
FAR Lable是远距离属性运算符,Lable是远标号,在另一 个代码段内。
执行:IPOFFSET Lable,CS SEG Lable。
执行,否则顺序执行。
(4)JBE/JNA—低于等于/不高于转移指令(A≤B) 形式:JBE/JNA 标号 功能:若小于( CF=1 或 ZF=1)转移到标号处
执行,否则顺序执行
该组指令需要检测CF、ZF位,常与CMP连用
3、基于有符号数的条件转移指令
(1)JG/JNLE—大于/不小于不等于转移指令(A>B) 形式:JG/JNLE 标号 功能:若大于(SF=OF 且 ZF=0)转移到标号处执
否则顺序执行。
微机原理与应用:第十四讲 控制转移指令
解: LOOP: NEXT: STOP:
MOV MOV MOV MOVX JNB INC INC DJNZ SJMP
DPTR, #8300H;
R6, #08H;
40H, #00H;
A,
@DPTR
ACC.7, NEXT
40H;
DPTR
R6, LOOP;
STOP
30
3.5.3子程序调用和返回指令
子程序的概念: 在编制一个计算机应用程序中,经常会遇到一个现象,
指令转移地址以DPTR内容起始点,ACC的内容作为偏 移量。
11
例3-48
若指令“JMP @A+DPTR”执行前,(DPTR)=2600H,(A)=3。 问指令执行后,转移地址是什么?
答:根据该指令功能,指令执行后,转移地址为2600H+3=2603H。
12
转移指令的比较
1)转移范围
LJMP addr16可以在整个存储器空间跳转
33
一、长调用指令
LCALL addr16; 指令代码: 00010010
a15 ∙ ∙ ∙ a8
a7 ∙ ∙ ∙ a0
该指令的操作可以看成是以下指令的组合
PUSH PUSH LJMP
PC 0~7; (SP)+1,PC 0~7进栈。 PC 8~15;(SP)+1,PC 8~15进栈。 addr16;将转移地址装入PC。
34
例3-56
若指令“LCALL
SUB”的地址为8230H,子程序
首地址SUB为9820H,该指令执行前(SP)=70H。请问该
指令执行后PC值以及堆栈的内容如何?
答:根据该指令功能,程序将转入子程序,所以指令执行后, PC值为9820H。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术
第3章 指令系统 Ⅴ
(一) 无条件转移指令JMP
格式: JMP 功能: OPRD
若OPRD为16位数,则IPOPRD,实现段内转移;
若OPRD为32位数,则IPOPRD低16, CSOPRD高16,段间转移。 注解: (1)OPRD常是标号Lable,即某条指令的符号地址。
否则顺序执行。 (6)JNS—正数转移指令 形式:JNS 标号
功能:若结果为正(SF=0)转移到标号处执行,
否则顺序执行。
微机原理与接口技术
第3章 指令系统 Ⅴ
(7)JE/JZ—等于转移指令
形式:JE/JZ 标号
功能:若等于(ZF=1)转移到标号处执行,否则
顺序执行。 (8)JNE/JNZ—不等于转移指令 形式:JNE/JNZ 标号
②、JMP NEAR PTR Lable;段内直接转移
NEAR PTR为近距离属性运算符,标号是近标号16bit。范围
不超过-32768~+32767。
执行:IPOFFSET 标号Lable,CS不变。
微机原理与接口技术
第3章 指令系统 Ⅴ
③、JMP R16 /MEM16;段内间接转移
OPRD是16bit的寄存器或者存储器地址。范围是段内任何
功能:若结果的低8位有奇数个“1”(PF=0)
转移到标号处执行,否则顺序执行。 该组指令需要检测单个位,常与TEST连用
微机原理与接口技术
第3章 指令系统 Ⅴ
2、基于无符号数的条件转移指令
(1)JA/JNBE—大于/不低于不等于转移指令(A>B)
形式:JA/JNBE
标号
功能:若大于( CF=0 且 ZF=0)转移到标号处执
先定义标号,后引用,为“向后引用”;
先引用标号,后定义,为“向前引用”。
微机原理与接口技术 (2)该指令有如下5种形式:
第3章 指令系统 Ⅴ
①、JMP SHORT Lable ;段内短转移
SHORT为短转移运算符(可以省略),标号为短标号8bit, 范围不超过-128~+127。 执行:IPOFFSET 标号Lable,CS不变。
功能:若不等于(ZF=0)转移到标号处执行,否 则顺序执行。
微机原理与接口技术
第3章 指令系统 Ⅴ
()JP/JPE—偶性转移指令
形式:JP/JPE 标号
功能:若结果的低8位有偶数个“1”(PF=1)
转移到标号处执行,否则顺序执行。 (10)JNP/JPO—奇性转移指令 形式:JNP/JPO 标号
第3章 指令系统 Ⅴ
功能:溢出(OF=1)转移到标号处执行,否则顺
序执行。 (4)JNO—无溢出转移指令 形式:JNO 标号 功能:未溢出(OF=0)转移到标号处执行,否则 顺序执行。
微机原理与接口技术
第3章 指令系统 Ⅴ
(5)JS—负数转移指令
形式:JS 标号
功能:若结果为负(SF=1)转移到标号处执行,
(三)循环控制指令 (四)子程序调用与返回指令 (五)中断指令
微机原理与接口技术 格式: J×× SHORT Lable
第3章 指令系统 Ⅴ
功能:IP←(IP)+disp(8bit) CS 不变 ①根据FR中标志位来判断是否需要转移。 ②如满足转移条件,则转移到指定的目标地址。
③如不满足转移条件,则顺序执行下一条指令。
;段内短转移 ;段内直接转移 ;段内间接转移 ;段内间接转移 ;段间直接转移 ;段间间接转移
微机原理与接口技术 第3章 指令系统 Ⅴ 第二部分 8086/8088指令系统
四. 程序控制转移指令
(一)无条件转移指令JMP (二)条件转移指令19条
1、基于算术标志位的的条件转移指令10条 JC/JNC JO/JNO JS/JNS JE/JNE(JZ/JNZ) JP/JNP(JPE/JPO) 2、基于无符号数的条件转移指令4条 JA/JNBE JAE/JNB JB/JNAE JBE/JNA 3、基于有符号数的条件转移指令4条 JG/JNLE JGE/JNL JL/JNGE JLE/JNG 4、计数器为0条件转移指令1条 JCXZ
微机原理与接口技术
第3章 指令系统 Ⅴ
微机原理与接口技术
第3章 指令系统 Ⅴ
第二部分
8086/8088指令系统
四. 程序控制转移指令
程序控制转移类指令用来控制程序的执行顺序。 程序的执行顺序是由CS和IP确定的 (一)无条件转移指令 JMP (二)条件转移指令 (三)循环控制指令
(四)子程序调用与返回指令
微机原理与接口技术
第3章 指令系统 Ⅴ
1、基于算术标志位的的条件转移指令
(1)JC—有进位/借位转移指令 形式:JC 标号
功能:CF=1转移到标号处执行,否则顺序执行。 (2)JNC—无进位/借位转移指令 形式:JNC 标号
功能:CF=0转移到标号处执行,否则顺序执行。
微机原理与接口技术 (3)JO—溢出转移指令 形式:JO 标号
MEM32为双字单元的存储器地址,不能够用Reg替代。转移
范围可达1MB。 执行:IP(MEM低16,前2字节),CS(MEM高16,后2 字节)。
例:
JMP JMP JMP JMP JMP JMP
SHORT Again NEAR PTR Begin WORD PTR [BP] [DI] BX FAR PTR Next DWORD PTR [BX] [DI]
地方。 执行:IP(R16),CS内容不变。
④、JMP FAR PTR Lable ;段间直接转移
FAR Lable是远距离属性运算符,Lable是远标号,在另一
个代码段内。
执行:IPOFFSET Lable,CS
SEG
Lable。
微机原理与接口技术 ⑤、JMP MEM32:段间间接转移
第3章 指令系统 Ⅴ
行,否则顺序执行。 (2)JAE/JNB—大于等于/不低于转移指令(A≥B)
注解:
(1)全部条件转移指令都是段内直接短转移,转
移地址的偏移量限制在-128~+127范围内。
微机原理与接口技术
第3章 指令系统 Ⅴ
(2)条件转移指令中,条件缩写字母的含义是: A—Above 高于 B—Below 低于 C—Carry 进位 E—Equal 等于 G—Greater 大于 L—Less 小于 N—Not 无 O—Over 溢出 S—Sign 符号 J—Jump 跳转 PE/PO—Parity Even奇偶性偶/奇