第三章 微处理器的实模式软件结构及程序设计
从软件的观点来研究微处理器的内部结构。
两种工作模式:实地址模式和保护地址模式。
了解工作模式的软件结构是使用汇编语言进行程序设计的必要条件。
第三章 微处理器的实模式软件结构及程序设计
指令,计算机按一定的 命令来执行特定的操作,这种命令叫指令。
程序,一系列指令的集合。
第三章 微处理器的实模式软件结构及程序设计
程序设计语言的发展:
机器语言:由二进制代码编写。
– 如 ASCII
汇编语言:将二进制代码用易于理解的符号代替。
– 如,ADD
高级语言:利用类英语的语句和命令。
– 如,BASIC,FORTRAN
第三章 微处理器的实模式软件结构及程序设计
微处理器的基本语言是机器语言,常用汇编语言和高级语言编写。
编译程序:将高级语言语句转成机器码的编译程序。
汇编语言的优点。
第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型指令指针 IP
段寄存器,CS,DS,SS,ES,FS,GS
数据寄存器,EAX,EBX,ECX,EDX
指针寄存器,ESP,EBP
变址寄存器,ESI,EDI
标志寄存器控制寄存器调试寄存器测试寄存器第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型微处理器有两个独立的存储器和 I/O地址空间。
为有效利用存储器,数据按对准边界原则排放。
字边界地址是 2的整数倍双字边界地址是 4的整数倍第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型实模式下,指令地址及指令操作数的存储器地址采用逻辑地址,但真正从存储器中取指或存取操作数则采用物理地址。
实模式下,由逻辑地址到物理地址的生成:
物理地址 =段地址 *16(左移 4位) +偏移地址第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型堆栈是特殊的存储区,临时存放一些信息。
实模式下,SS段基址指向当前堆栈的最低地址,
SP和 BP是偏移地址。
SP指向栈顶,既最后推入堆栈的数据存储器地址。
当一个字推入堆栈时,SP自动减 2
当一个双字推入堆栈时,SP自动减 4
当一个字弹出堆栈时,SP自动加 2
当一个双字弹出堆栈时,SP自动加 4
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
– 寻址:访问不同类型的操作数。
– 寻址模式:
寄存器操作数寻址
立即操作数寻址
存储器操作数寻址第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
寄存器操作数寻址,指令的操作数存放在处理器的内部寄存器中。
MOVE AX,BX
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
立即操作数寻址,指令的操作数就是指令的一部分,这种形式的操作数叫 立即数,其对应的寻址方式叫立即数寻址。
MOVE AL,15H
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址:
为访问存储器的操作数,MPU要先计算操作数的物理地址 PA,然后读或写这个存储器的操作数。
PA=段地址( SBA):有效地址( EA)
有效地址可用各种方法指定。
如,EA=base+(index*scale factor)+disp
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址 ------直接寻址模式,指令的地址码部分直接给出操作数在存储器中的地址。
OP A 存储器操作数
3、微处理器的寻址模式
存储器操作数寻址 ------寄存器间接寻址,由指令的地址码取出的,是操作数的地址或指令的地址,MPU需以此为地址再次访问,才能取得数据。
OP A 存储器
A1
操作数A1
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址 ------基址寻址,操作数的地址由基址寄存器的内容加指令的地址码部分。
OP A 存储器操作数基址寄存器 +
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址 ------变址寄存器寻址,操作数的地址由变址寄存器的内容加指令的地址码部分。
OP X A 存储器操作数
+
通用寄存器
3、微处理器的寻址模式
存储器操作数寻址 ------基址 +变址寻址模式,基址寻址与变址寻址组合,形成功能更强的寻址模式。用于访问复杂的数据结构。如:二维数组。
PA=段基址:基址 +变址 +偏移量
PA=段基址:基址 +变址 *比例因子 +偏移量第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统
– 指能为 MPU所识别的一组指令的集合。
– 它规定 MPU所能执行的基本操作。
– 不同类型的 MPU具有不同的指令系统。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统
80X86指令系统发展过程基本指令集 基本指令集 +扩展指令集系统控制指令集 系统控制 指令集基本扩展集
+386特殊指令集
8086
8088
80286 80386
保护模式实模式 实模式第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统
– 80386实模式指令系统按功能分成:
数据传送指令算术运算指令逻辑运算指令程序转移指令字符串操作指令处理机控制指令第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
1) MOV指令
MOV D,S ;( D) ( S)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
1) MOV指令
通用寄存器间数据传送指令,MOV AL,AH
立即数传送到通用寄存器,MOV AL,0FH
存储器与通用寄存器间数据传送,MOV AL,[SI]
立即数传送至存储器,MOV BYTEFLD,40H
段寄存器与 16位通用寄存器间的数据传送,MOV AX,CS
段寄存器与存储器间的数据传送,MOV DS,[SI]
通用寄存器与特殊寄存器间的数据传送,MOV EAX,1
MOV CR0,EAX
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
2)符号扩展和零扩展传送指令
MOVSX
MOVZX
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
2)符号扩展传送指令
MOVSX D,S ; ( D) ( S)
MOVSX EBX,AX
设( AX) =8000H,
指令执行后,( EBX) =0FFFF8000H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
2)零扩展传送指令
MOVZX D,S ; ( D) ( S)
MOVZX AX,AL
设( AL) =0A5H,
指令执行后,( AX) =00A5H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
3) XCHG指令
XCHG D,S ; ( D) ( S)
XCHG AX,BX
设( AX) =1234H,( BX) =5678H,
指令执行后,( AX) =5678H,( BX) =1234H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
4) XLAT和 XLATB指令
XLATB ;( AL) (( BX) +( AL))
用于查表第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
4) XLAT和 XLATB指令
XLAT ;无操作数
XLAT Source--table ;设置形式操作数
XLAT 段寄存器,Source--table ;带段超越的操作数用于查表,操作数为形式操作数第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
5)地址传送指令
LEA 指令
LEA reg16,EA
LEA reg32,EA
EA为存储器操作数,reg16,reg32为通用寄存器取源操作数的有效地址送至目的操作数通用寄存器中第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
5)地址传送指令
LDS 指令
LDS reg16,EA
LDS reg32,EA
EA为存储器操作数,reg16,reg32为通用寄存器
(reg16) (EA) (DS) (EA+2)
(reg32) (EA) (DS) (EA+4)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
6)堆栈操作指令
PUSH指令
PUSH S ; SP SP-2,(( SP) +1:( SP)) ( S)
源操作数 S推入堆栈。堆栈指针 SP减 2,
操作数 S压入 SP指定的栈顶中。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
6)堆栈操作指令
POP 指令
POP D ;( D) (( SP) +1:( SP)),SP SP+2
把堆栈指针所指的栈顶存储单元的内容弹出至目的操作数 D,堆栈指针 SP加 2 。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
算术运算指令在运行时,会影响状态标志位。
多种数据格式,有符号,无符号字节,字或双字二进制
BCD码
ASCII玛第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– ADD指令格式
–
ADD D,S ;( D) ( S) +( D)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– ADC指令格式
–
ADC D,S ;( D) ( S) +( D) +( CF)
ADC指令格式
LEA SI,FIRST
–
FIRST DW 758DH,9A5CH
SECOND DW 0A524H,8345H
THIRD DW 3 DUP( 0)
LEA SI,FIRST
LEA DI,SECOND
LEA BX,THIRD
MOV AX,[SI]
ADD AX,[DI]
MOV [BX],AX
PUSHF
ADD SI,2
ADD DI,2
ADD BX,2
POPF
MOV AX,[SI]
ADC AX,[DI]
MOV [BX],AX
ADC WORD PTR [BX+2],0
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– INC指令格式
–
INC D ;( D) ( D) + 1
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– AAA指令格式 -----未组合的 BCD加法调整指令
–
AAA
第三章 微处理器的实模式软件结构及程序设计
AAA指令格式 -----未组合的 BCD加法调整指令
–
为什么要调整?
设未组合的 BCD数为,09,08
两数相加,0000 1001
0000 1000
0001 0001
和为,11,显然,运算结果发生错误。
第三章 微处理器的实模式软件结构及程序设计
AAA指令格式 -----未组合的 BCD加法调整指令
–
经过调整:设未组合的 BCD数为,09,08
两数相加,0000 1001
0000 1000
0001 0001
0000 0110
0001 0111
和为,17,调整后,结果正确。
AF=1
+6调整第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– AAA指令格式 -----未组合的 BCD加法调整指令
–
调整条件
IF( AL&0FH) >9 OR AF=1 THEN
AL AL+6,AH AH+1,AF 1,CF 1,
AL AL &0FH
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– DAA指令格式 -----组合的 BCD加法调整指令
–
DAA
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– DAA指令格式 -----组合的 BCD加法调整指令
–
调整条件
IF( AL&0FH) >9 OR AF=1 THEN AL AL+6,AF 1
IF( AL&0FH) >90H OR CF=1 THEN AL AL+60H,CF 1
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– SUB指令格式
–
SUB D,S ;( D) ( D) — ( S)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– SBB指令格式
–
SBB D,S ;( D) ( D) — ( S) — ( CF)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– DEC 指令格式
–
DEC D ;( D) ( D) — 1
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– NEG 指令格式
–
NEG D ;( D) 0— ( D)
问题:当操作为 80H时,执行 NEG指令,结果怎样?
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– CMP 指令格式
–
CMP D,S ;( D) — ( S)
DATA SEGMENT
BLOCK DB 1AH,5CH,62H,97H,0A5H,73H,05H,3AH,4CH,1BH
MAX DB?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAX-UN PROG FAR
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,BLOCK
MOV CX,9
MOV AL,[SI]
AGAIN,
NEXT:
MAX-UN ENDP
CODE ENDS
END MAX-UN
CMP AL,[SI+1]
JNC NEXT
MOV AL,[SI+1]
INC SI
DEC CX
JNZ AGAIN
MOV MAX,AL
MOV AX,4C00H
INT 21H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– AAS 指令格式
–
AAS
未组合 BCD码减法调整指令第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– DAS 指令格式
–
DAS
组合 BCD码减法调整指令第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
3)乘法指令,MUL,IMUL,AAM
– 无符号数乘法 MUL指令格式
– 有符号数乘法指令 IMUL
– AAM指令格式(未组合的 BCD码乘法调整指令)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
4)除法指令,DIV,IDIV,AAD,CBW,
CWD,CWDE,CDQ
– 无符号数除法 DIV指令格式
– 有符号数除法指令 IDIV,CBW,CWD,CDQ,
– CWDE
– AAD指令格式
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令逻辑与指令 AND
逻辑或指令 OR
逻辑异或指令 XOR
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑与指令
AND D,S ;( D) ( D)?( S)
常用于位屏蔽第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑与指令
AND D,S ;( D) ( D)?( S)
常用于位屏蔽第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 测试指令
TEST D,S ;( D)?( S)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑或指令
OR D,S ;( D) ( D) ( S)
常用于判断或将 BCD码转为 ASCII
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑异或指令
XOR D,S ;( D) ( D) ( S)
相同为 0,相异为 1。用于清零。
+
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑非指令
NOT D ;( D) ( D)
求反。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 SAL/SHL,SHR,SAR,SHLD,SHRD
算术移位(左移,右移)
逻辑移位(左移,右移)
小循环(左移,右移)
大循环(左移,右移)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 左移指令
SAL/SHL D,COUNT
操作数算术左移 逻辑左移
C 0
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 左移指令
左移指令可用于乘法运算。左移一位,操作数乘 2。
SHL AX,1
MOV BX,AX
SHL AX,2
ADD AX,BX
AX中的数乘 10
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 右移指令
SHR D,COUNT
操作数逻辑右移一位,可使无符号数除以 2。
逻辑右移
C 0
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 右移指令
SAR D,COUNT
操作数逻辑右移一位,可使无符号数除以 2。
算术右移
C
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 右移指令
( AL) =84H
SAR AL,1
则:( AL) =C2H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — SHLD移位指令
SHLD D1,D2,COUNT
双精度左移指令。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — SHRD移位指令
SHRD D1,D2,COUNT
双精度右移指令。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 ROL,ROR,RCL,RCR
小循环(左移,右移) ROL,ROR
大循环(左移,右移) RCL,RCR
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 小循环
ROL D,COUNT
C左移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 小循环
ROR D,COUNT
C右移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 大循环
RCL D,COUNT
C左移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 大循环
RCR D,COUNT
C右移
例:将 64位双精度整数 EDX,EAX乘以 8
AGAIN:
MOV CX,3
SHL EAX,1
RCL EDX,1
DEC CX
JNZ AGAIN
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令是 80386的扩展指令,用于测试寄存器或存储器中某一位的逻辑电平。可实现置位,复位或求反。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令 —— 位测试指令位测试指令 BT,BTR,BTS,BTC
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令
BT D,S
例如,BT BX,7
( BX) =03F0H,执行后,( CF) =1。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令
BTR D,S ;被测试位复位
BTS D,S ;被测试位置位
BTC D,S ;被测试位求反第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令 —— 位扫描指令位扫描指令 BSF,BSR
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令无条件转移:指令执行与状态无关,改变程序执行顺序。
条件转移:视指定的条件是否满足。满足则转,否则顺序执行。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 无条件转移指令
JMP AA
AA *****
无条件跳转跳转越过的指令下一条执行指令段内转移段间转移无条件转移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 条件转移指令
JMP AA
AA *****
条件跳转条件不满足时执行指令条件满足时执行指令条件满足
? 否是测试条件和转移条件第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 重复控制指令
LOOP标号 DEC CX
JNZ AGAIN
LOOPZ
LOOPNZ
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 重复控制指令在一数据缓冲区寻找非零元素的起始地址,设缓冲区
BUFFER的数据个数为 COUNT。
START,LEA SI,BUFFER
MOV CX,COUNT
AGAIN,MOV AL,[SI]
INC SI
OR AL,AL
LOOPZ AGAIN
HLT
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
2)子程序调用 CALL
调用子程序 A
下一条指令调用子程序 A
下一条指令主程序第一条指令返回子程序 A
子程序调用:段内调用
段间调用
子程序返回指令 RET
RETF
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
对内存中连续地址的字节、字或双字进行处理。
特点:
1)用 SI寻址源操作数,DI寻址目的操作数
2)可自动变址第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
1)数据串传送指令
MOVS目的串,源串
MOVSB
MOVSW
MOVSD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
2)数据串比较指令
CMPS 源串,目的串
CMPSB
CMPSW
CMPSD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
3)字符串扫描指令
SCAS 目的串
SCASB
SCASW
SCASD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
4)取数据串指令
LODS 源操作数
LODSB
LODSW
LODSD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
5)存数据串指令
STOS 目的操作数第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------处理机控制指令
1)状态标志位操作指令控制进位标志位 CF
控制方向标志位 DF
控制中断允许标志位清进位 CLC
进位求反 CMC
设置进位 STC
清 DF CLD
设置 DF STD
禁止可屏蔽中断请求 CLI
允许可屏蔽中断请求 STI
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------处理机控制指令
2)外部同步指令
HLT 停机指令
WAIT 等待指令处理器交权指令 ESC
总线锁定指令前缀 LOCK
空操作指令 NOP
小结
掌握知识:
1)微机系统的基本组成
2)计算机的基本操作过程
3) CPU的基本组成
4) 80386CPU寄存器结构
5)机器周期,总线周期,处理器时钟周期小结
掌握知识:
6)物理地址,虚拟地址
7) 80386CPU中指令队列的长度
8) 80386CPU的段寄存器有哪些
9) 80386CPU的标志寄存器组成
10) M/IO,D/C,W/R的意义小结
掌握知识:
11)为什么存储器写操作要用字节选通信号
12) MPU实模式软件结构
13)如何用对准边界原则存放各类数据
14)实地址模式下物理地址的生成
15)堆栈操作过程小结
掌握知识:
16)微处理器的寻址模式
17)实模式指令系统的分类
18)对多维数组的任一元素进行访问,
最好用什么寻址方式
19)编写程序,在给定的 100个数当中,
寻找最大及最小数,并将其分别存放在
MAX,MIN存储单元中
从软件的观点来研究微处理器的内部结构。
两种工作模式:实地址模式和保护地址模式。
了解工作模式的软件结构是使用汇编语言进行程序设计的必要条件。
第三章 微处理器的实模式软件结构及程序设计
指令,计算机按一定的 命令来执行特定的操作,这种命令叫指令。
程序,一系列指令的集合。
第三章 微处理器的实模式软件结构及程序设计
程序设计语言的发展:
机器语言:由二进制代码编写。
– 如 ASCII
汇编语言:将二进制代码用易于理解的符号代替。
– 如,ADD
高级语言:利用类英语的语句和命令。
– 如,BASIC,FORTRAN
第三章 微处理器的实模式软件结构及程序设计
微处理器的基本语言是机器语言,常用汇编语言和高级语言编写。
编译程序:将高级语言语句转成机器码的编译程序。
汇编语言的优点。
第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型指令指针 IP
段寄存器,CS,DS,SS,ES,FS,GS
数据寄存器,EAX,EBX,ECX,EDX
指针寄存器,ESP,EBP
变址寄存器,ESI,EDI
标志寄存器控制寄存器调试寄存器测试寄存器第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型微处理器有两个独立的存储器和 I/O地址空间。
为有效利用存储器,数据按对准边界原则排放。
字边界地址是 2的整数倍双字边界地址是 4的整数倍第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型实模式下,指令地址及指令操作数的存储器地址采用逻辑地址,但真正从存储器中取指或存取操作数则采用物理地址。
实模式下,由逻辑地址到物理地址的生成:
物理地址 =段地址 *16(左移 4位) +偏移地址第三章 微处理器的实模式软件结构及程序设计
2、微处理器实模式软件模型堆栈是特殊的存储区,临时存放一些信息。
实模式下,SS段基址指向当前堆栈的最低地址,
SP和 BP是偏移地址。
SP指向栈顶,既最后推入堆栈的数据存储器地址。
当一个字推入堆栈时,SP自动减 2
当一个双字推入堆栈时,SP自动减 4
当一个字弹出堆栈时,SP自动加 2
当一个双字弹出堆栈时,SP自动加 4
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
– 寻址:访问不同类型的操作数。
– 寻址模式:
寄存器操作数寻址
立即操作数寻址
存储器操作数寻址第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
寄存器操作数寻址,指令的操作数存放在处理器的内部寄存器中。
MOVE AX,BX
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
立即操作数寻址,指令的操作数就是指令的一部分,这种形式的操作数叫 立即数,其对应的寻址方式叫立即数寻址。
MOVE AL,15H
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址:
为访问存储器的操作数,MPU要先计算操作数的物理地址 PA,然后读或写这个存储器的操作数。
PA=段地址( SBA):有效地址( EA)
有效地址可用各种方法指定。
如,EA=base+(index*scale factor)+disp
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址 ------直接寻址模式,指令的地址码部分直接给出操作数在存储器中的地址。
OP A 存储器操作数
3、微处理器的寻址模式
存储器操作数寻址 ------寄存器间接寻址,由指令的地址码取出的,是操作数的地址或指令的地址,MPU需以此为地址再次访问,才能取得数据。
OP A 存储器
A1
操作数A1
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址 ------基址寻址,操作数的地址由基址寄存器的内容加指令的地址码部分。
OP A 存储器操作数基址寄存器 +
第三章 微处理器的实模式软件结构及程序设计
3、微处理器的寻址模式
存储器操作数寻址 ------变址寄存器寻址,操作数的地址由变址寄存器的内容加指令的地址码部分。
OP X A 存储器操作数
+
通用寄存器
3、微处理器的寻址模式
存储器操作数寻址 ------基址 +变址寻址模式,基址寻址与变址寻址组合,形成功能更强的寻址模式。用于访问复杂的数据结构。如:二维数组。
PA=段基址:基址 +变址 +偏移量
PA=段基址:基址 +变址 *比例因子 +偏移量第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统
– 指能为 MPU所识别的一组指令的集合。
– 它规定 MPU所能执行的基本操作。
– 不同类型的 MPU具有不同的指令系统。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统
80X86指令系统发展过程基本指令集 基本指令集 +扩展指令集系统控制指令集 系统控制 指令集基本扩展集
+386特殊指令集
8086
8088
80286 80386
保护模式实模式 实模式第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统
– 80386实模式指令系统按功能分成:
数据传送指令算术运算指令逻辑运算指令程序转移指令字符串操作指令处理机控制指令第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
1) MOV指令
MOV D,S ;( D) ( S)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
1) MOV指令
通用寄存器间数据传送指令,MOV AL,AH
立即数传送到通用寄存器,MOV AL,0FH
存储器与通用寄存器间数据传送,MOV AL,[SI]
立即数传送至存储器,MOV BYTEFLD,40H
段寄存器与 16位通用寄存器间的数据传送,MOV AX,CS
段寄存器与存储器间的数据传送,MOV DS,[SI]
通用寄存器与特殊寄存器间的数据传送,MOV EAX,1
MOV CR0,EAX
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
2)符号扩展和零扩展传送指令
MOVSX
MOVZX
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
2)符号扩展传送指令
MOVSX D,S ; ( D) ( S)
MOVSX EBX,AX
设( AX) =8000H,
指令执行后,( EBX) =0FFFF8000H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
2)零扩展传送指令
MOVZX D,S ; ( D) ( S)
MOVZX AX,AL
设( AL) =0A5H,
指令执行后,( AX) =00A5H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
3) XCHG指令
XCHG D,S ; ( D) ( S)
XCHG AX,BX
设( AX) =1234H,( BX) =5678H,
指令执行后,( AX) =5678H,( BX) =1234H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
4) XLAT和 XLATB指令
XLATB ;( AL) (( BX) +( AL))
用于查表第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
4) XLAT和 XLATB指令
XLAT ;无操作数
XLAT Source--table ;设置形式操作数
XLAT 段寄存器,Source--table ;带段超越的操作数用于查表,操作数为形式操作数第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
5)地址传送指令
LEA 指令
LEA reg16,EA
LEA reg32,EA
EA为存储器操作数,reg16,reg32为通用寄存器取源操作数的有效地址送至目的操作数通用寄存器中第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
5)地址传送指令
LDS 指令
LDS reg16,EA
LDS reg32,EA
EA为存储器操作数,reg16,reg32为通用寄存器
(reg16) (EA) (DS) (EA+2)
(reg32) (EA) (DS) (EA+4)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
6)堆栈操作指令
PUSH指令
PUSH S ; SP SP-2,(( SP) +1:( SP)) ( S)
源操作数 S推入堆栈。堆栈指针 SP减 2,
操作数 S压入 SP指定的栈顶中。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------数据传送指令
6)堆栈操作指令
POP 指令
POP D ;( D) (( SP) +1:( SP)),SP SP+2
把堆栈指针所指的栈顶存储单元的内容弹出至目的操作数 D,堆栈指针 SP加 2 。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
算术运算指令在运行时,会影响状态标志位。
多种数据格式,有符号,无符号字节,字或双字二进制
BCD码
ASCII玛第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– ADD指令格式
–
ADD D,S ;( D) ( S) +( D)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– ADC指令格式
–
ADC D,S ;( D) ( S) +( D) +( CF)
ADC指令格式
LEA SI,FIRST
–
FIRST DW 758DH,9A5CH
SECOND DW 0A524H,8345H
THIRD DW 3 DUP( 0)
LEA SI,FIRST
LEA DI,SECOND
LEA BX,THIRD
MOV AX,[SI]
ADD AX,[DI]
MOV [BX],AX
PUSHF
ADD SI,2
ADD DI,2
ADD BX,2
POPF
MOV AX,[SI]
ADC AX,[DI]
MOV [BX],AX
ADC WORD PTR [BX+2],0
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– INC指令格式
–
INC D ;( D) ( D) + 1
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– AAA指令格式 -----未组合的 BCD加法调整指令
–
AAA
第三章 微处理器的实模式软件结构及程序设计
AAA指令格式 -----未组合的 BCD加法调整指令
–
为什么要调整?
设未组合的 BCD数为,09,08
两数相加,0000 1001
0000 1000
0001 0001
和为,11,显然,运算结果发生错误。
第三章 微处理器的实模式软件结构及程序设计
AAA指令格式 -----未组合的 BCD加法调整指令
–
经过调整:设未组合的 BCD数为,09,08
两数相加,0000 1001
0000 1000
0001 0001
0000 0110
0001 0111
和为,17,调整后,结果正确。
AF=1
+6调整第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– AAA指令格式 -----未组合的 BCD加法调整指令
–
调整条件
IF( AL&0FH) >9 OR AF=1 THEN
AL AL+6,AH AH+1,AF 1,CF 1,
AL AL &0FH
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– DAA指令格式 -----组合的 BCD加法调整指令
–
DAA
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
1)加法指令,ADD,ADC,INC,AAA,DAA
– DAA指令格式 -----组合的 BCD加法调整指令
–
调整条件
IF( AL&0FH) >9 OR AF=1 THEN AL AL+6,AF 1
IF( AL&0FH) >90H OR CF=1 THEN AL AL+60H,CF 1
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– SUB指令格式
–
SUB D,S ;( D) ( D) — ( S)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– SBB指令格式
–
SBB D,S ;( D) ( D) — ( S) — ( CF)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– DEC 指令格式
–
DEC D ;( D) ( D) — 1
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– NEG 指令格式
–
NEG D ;( D) 0— ( D)
问题:当操作为 80H时,执行 NEG指令,结果怎样?
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– CMP 指令格式
–
CMP D,S ;( D) — ( S)
DATA SEGMENT
BLOCK DB 1AH,5CH,62H,97H,0A5H,73H,05H,3AH,4CH,1BH
MAX DB?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAX-UN PROG FAR
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,BLOCK
MOV CX,9
MOV AL,[SI]
AGAIN,
NEXT:
MAX-UN ENDP
CODE ENDS
END MAX-UN
CMP AL,[SI+1]
JNC NEXT
MOV AL,[SI+1]
INC SI
DEC CX
JNZ AGAIN
MOV MAX,AL
MOV AX,4C00H
INT 21H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– AAS 指令格式
–
AAS
未组合 BCD码减法调整指令第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
2)减法指令,SUB,SBB,DEC,NEG,CMP,
AAS,DAS
– DAS 指令格式
–
DAS
组合 BCD码减法调整指令第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
3)乘法指令,MUL,IMUL,AAM
– 无符号数乘法 MUL指令格式
– 有符号数乘法指令 IMUL
– AAM指令格式(未组合的 BCD码乘法调整指令)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------算术运算指令
4)除法指令,DIV,IDIV,AAD,CBW,
CWD,CWDE,CDQ
– 无符号数除法 DIV指令格式
– 有符号数除法指令 IDIV,CBW,CWD,CDQ,
– CWDE
– AAD指令格式
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令逻辑与指令 AND
逻辑或指令 OR
逻辑异或指令 XOR
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑与指令
AND D,S ;( D) ( D)?( S)
常用于位屏蔽第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑与指令
AND D,S ;( D) ( D)?( S)
常用于位屏蔽第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 测试指令
TEST D,S ;( D)?( S)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑或指令
OR D,S ;( D) ( D) ( S)
常用于判断或将 BCD码转为 ASCII
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑异或指令
XOR D,S ;( D) ( D) ( S)
相同为 0,相异为 1。用于清零。
+
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
1)逻辑运算指令 —— 逻辑非指令
NOT D ;( D) ( D)
求反。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 SAL/SHL,SHR,SAR,SHLD,SHRD
算术移位(左移,右移)
逻辑移位(左移,右移)
小循环(左移,右移)
大循环(左移,右移)
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 左移指令
SAL/SHL D,COUNT
操作数算术左移 逻辑左移
C 0
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 左移指令
左移指令可用于乘法运算。左移一位,操作数乘 2。
SHL AX,1
MOV BX,AX
SHL AX,2
ADD AX,BX
AX中的数乘 10
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 右移指令
SHR D,COUNT
操作数逻辑右移一位,可使无符号数除以 2。
逻辑右移
C 0
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 右移指令
SAR D,COUNT
操作数逻辑右移一位,可使无符号数除以 2。
算术右移
C
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — 右移指令
( AL) =84H
SAR AL,1
则:( AL) =C2H
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — SHLD移位指令
SHLD D1,D2,COUNT
双精度左移指令。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
2)移位指令 — SHRD移位指令
SHRD D1,D2,COUNT
双精度右移指令。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 ROL,ROR,RCL,RCR
小循环(左移,右移) ROL,ROR
大循环(左移,右移) RCL,RCR
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 小循环
ROL D,COUNT
C左移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 小循环
ROR D,COUNT
C右移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 大循环
RCL D,COUNT
C左移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
3)旋转指令 —— 大循环
RCR D,COUNT
C右移
例:将 64位双精度整数 EDX,EAX乘以 8
AGAIN:
MOV CX,3
SHL EAX,1
RCL EDX,1
DEC CX
JNZ AGAIN
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令是 80386的扩展指令,用于测试寄存器或存储器中某一位的逻辑电平。可实现置位,复位或求反。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令 —— 位测试指令位测试指令 BT,BTR,BTS,BTC
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令
BT D,S
例如,BT BX,7
( BX) =03F0H,执行后,( CF) =1。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令
BTR D,S ;被测试位复位
BTS D,S ;被测试位置位
BTC D,S ;被测试位求反第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------逻辑运算和移位指令
4)位测试和位扫描指令 —— 位扫描指令位扫描指令 BSF,BSR
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令无条件转移:指令执行与状态无关,改变程序执行顺序。
条件转移:视指定的条件是否满足。满足则转,否则顺序执行。
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 无条件转移指令
JMP AA
AA *****
无条件跳转跳转越过的指令下一条执行指令段内转移段间转移无条件转移第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 条件转移指令
JMP AA
AA *****
条件跳转条件不满足时执行指令条件满足时执行指令条件满足
? 否是测试条件和转移条件第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 重复控制指令
LOOP标号 DEC CX
JNZ AGAIN
LOOPZ
LOOPNZ
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
1)转移指令 —— 重复控制指令在一数据缓冲区寻找非零元素的起始地址,设缓冲区
BUFFER的数据个数为 COUNT。
START,LEA SI,BUFFER
MOV CX,COUNT
AGAIN,MOV AL,[SI]
INC SI
OR AL,AL
LOOPZ AGAIN
HLT
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------程序转移指令
2)子程序调用 CALL
调用子程序 A
下一条指令调用子程序 A
下一条指令主程序第一条指令返回子程序 A
子程序调用:段内调用
段间调用
子程序返回指令 RET
RETF
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
对内存中连续地址的字节、字或双字进行处理。
特点:
1)用 SI寻址源操作数,DI寻址目的操作数
2)可自动变址第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
1)数据串传送指令
MOVS目的串,源串
MOVSB
MOVSW
MOVSD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
2)数据串比较指令
CMPS 源串,目的串
CMPSB
CMPSW
CMPSD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
3)字符串扫描指令
SCAS 目的串
SCASB
SCASW
SCASD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
4)取数据串指令
LODS 源操作数
LODSB
LODSW
LODSD
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------串操作指令
5)存数据串指令
STOS 目的操作数第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------处理机控制指令
1)状态标志位操作指令控制进位标志位 CF
控制方向标志位 DF
控制中断允许标志位清进位 CLC
进位求反 CMC
设置进位 STC
清 DF CLD
设置 DF STD
禁止可屏蔽中断请求 CLI
允许可屏蔽中断请求 STI
第三章 微处理器的实模式软件结构及程序设计
4、实模式 指令系统 -------处理机控制指令
2)外部同步指令
HLT 停机指令
WAIT 等待指令处理器交权指令 ESC
总线锁定指令前缀 LOCK
空操作指令 NOP
小结
掌握知识:
1)微机系统的基本组成
2)计算机的基本操作过程
3) CPU的基本组成
4) 80386CPU寄存器结构
5)机器周期,总线周期,处理器时钟周期小结
掌握知识:
6)物理地址,虚拟地址
7) 80386CPU中指令队列的长度
8) 80386CPU的段寄存器有哪些
9) 80386CPU的标志寄存器组成
10) M/IO,D/C,W/R的意义小结
掌握知识:
11)为什么存储器写操作要用字节选通信号
12) MPU实模式软件结构
13)如何用对准边界原则存放各类数据
14)实地址模式下物理地址的生成
15)堆栈操作过程小结
掌握知识:
16)微处理器的寻址模式
17)实模式指令系统的分类
18)对多维数组的任一元素进行访问,
最好用什么寻址方式
19)编写程序,在给定的 100个数当中,
寻找最大及最小数,并将其分别存放在
MAX,MIN存储单元中