汇编语言期末总结小抄必备.docx
- 文档编号:4818864
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:12
- 大小:102.73KB
汇编语言期末总结小抄必备.docx
《汇编语言期末总结小抄必备.docx》由会员分享,可在线阅读,更多相关《汇编语言期末总结小抄必备.docx(12页珍藏版)》请在冰豆网上搜索。
汇编语言期末总结小抄必备
汇编语言期末总结(小抄必备)
执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等
ØCF(CarryFlag):
进位标志位
CF=l,表示本次运算中最高位(D15或D7)有进位(加法运算时)或有借位(减法运算时)。
CF标志可通过STC指令置位,通过CLC指令复位(清除进位标志),还可通过CMC指令将当前CF标志取反。
ØPF(ParityFlag):
奇偶校验标志位
PF=1,表示本次运算结果中有偶数个“l”,PF=0,表示本次运算结果中有奇数个“1”。
ØAF(AuxiliaryCarryFlag):
辅助进位标志位。
AF=l,表示运算结果的8位数据中,低4位向高4位有进位(加法运算时)或有借位(减法运算时),这个标志位只在十进制运算中有用。
ØZF(ZeroFlag):
零标志位
ZF=1,表示本次运算结果为零,否则即运算结果非零时,ZF=0。
ØSF(SignFlag):
符号标志
SF=1,表示本次运算结果的最高位(第7位或第15位)为“l”,否则SF=0。
ØOF(OverflowF1ag):
溢出标志
ØIF(InterruptFlag):
中断标志位
IF=1,表示允许CPU响应可屏蔽中断。
IF标志可通过STI指令置位,也可通过CLI指令复位。
ØDF(DirectionFlag):
方向标志位
在串操作指令中,若DF=0,表示串操作指令地址指针自动增量;DF=1,表示地址指针自动减量。
DF标志位可通过STD指令置位,也可通过CLD指令复位。
ØTF(TrapFlag):
单步标志位
寻址方式
1.立即寻址
2寄存器寻址
3直接寻址
4寄存器间接寻址
5、基址/变址寻址当使用BX或BP寄存器时,称基址寻址;使用SI或DI寄存器时,称变址寻址
6、基址加变址寻址
7、其他
A、隐含寻址
B、串寻址源操作数的逻辑地址为DS:
SI;目的操作数的逻辑地址为ES:
DI
c、I/O(输入/输出)端口寻址
(1)直接端口寻址方式。
(2)采用DX寄存器间接寻址方式
(3)输入指令中目的操作数可为AL或
AX;输出指令中源操作数可为AL或AX。
1、通用数据传送指令
1)、MOV传送指令目的操作数不能为CS
2)PUSH进栈指令SP-2
3)POP出栈指令目的操作数不能为CSSP+2
4)XCHG交换指令操作数不能为立即数;源和目的不能同时为存储单元;段寄存器不能作为操作数。
2、累加器专用传送指令
1)IN输入指令
指令格式为:
INAL,n
INAX,n
INAL,DX
INAX,DX
2)OUT输出指令
指令格式为:
OUTn,AL
OUTn,AX
OUTDX,AL
OUTDX,AX
3)XLAT换码指令
3、目标地址传送指令
1)LEA有效地址传送到寄存器
2)LDS装入一个新的物理地址
3)LES装入一个新的物理地址
4、标志寄存器传送指令
1)LAHFFR寄存器的低8位送AH
2)SAHFAH送FR寄存器的低8位
3)PUSHFFR寄存器推入堆栈
4)POPF从栈顶中弹出存入FR寄存器
二、算术运算指令
1、算术加法指令
•1) ADD算术加法
•2)ADC带进位算术加法
指令功能:
目的地←目的操作数+源操作数+CF
•3)INC加1指令
指令功能:
目的地←目的操作数+1
4)DAA对压缩BCD数加法操作的结果进行校正
指令功能:
对AL寄存器的内容进行十进制调整
•5) AAA对非压缩BCD数加法操作的结果进行校正
指令功能:
对AL寄存器的内容进行十进制调整
2、算术减法指令
1) SUB算术减法
指令功能:
目的地←目的操作数-源操作数
2) SBB带进位算术减法
指令功能:
目的地←目的操作数-源操作数-CF
3)DEC减1指令
指令功能:
目的地←目的操作数-1
4)DAS对压缩BCD数减法操作的结果进行校正
指令功能:
对AL寄存器的内容进行十进制调整
5)AAS对非压缩BCD数减法操作的结果进行校正
指令功能:
对AL寄存器的内容进行十进制调整
6)CMP比较指令
指令功能:
两个操作数相减,不产生运算结果仅影响标志
7)NEG取补指令
指令功能:
0-目的操作数
3、算术乘法指令
1) MUL无符号数乘法
指令功能:
完成两个操作数相乘
MULOPRD;
AL*OPRD->AX
AX*OPRD->DXAX
OPRD:
R,MEM
2) IMUL带符号数乘法
指令功能:
完成两个操作数相乘
3)AAM非压缩BCD数乘法操作结果校正
指令功能:
完成两个非压缩BCD数乘法结果的十进制数调整
4、算术除法指令
•DIV无符号数除法
指令功能:
完成两个操作数相除
DIVOPRD
AX/OPRD→AL:
商,AH:
余数
DXAX/OPRD→AX:
商,DX:
余数
•IDIV带符号数除法
指令功能:
完成两个操作数相除
另外还有:
CBW带符号数字节扩展、
CWD带符号数字扩展、
AAD非压缩BCD数除法校正
三、位操作指令
指令的共同点是:
(1) 可以按二进制位进行操作;
(2)逻辑运算指令按逻辑门电路的运算规则,
(3) 逻辑移位指令有左移和右移,移出的位都
进入CF标志
(4)因移空位的补充方式不同有多种指令形式
(5)逻辑移位指令中,移动超过1次则用CL寄存器做计数器
(6) 执行逻辑操作指令,CF均被清0
1、逻辑运算指令
2、1)NOT逻辑求反
3、指令功能:
将8位、16位寄存器或存储器内容求反
4、2)AND逻辑与操作
5、指令功能:
将8位、16位寄存器或存储器内容和源操作数“与”
6、3)OR逻辑或操作
7、指令功能:
将8位、16位寄存器或存储器内容和源操作数“或”
8、4)XOR逻辑异或操作
9、指令功能:
将8位、16位寄存器或存储器内容和源操作数“异或”
10、5)TEST测试指令
11、指令功能:
将8位、16位寄存器或存储器内容和源操作数“与”,不产生运算结果,仅影响状态标志
AND可以使指定位为0
OR可以使指定位为1
XOR可以使指定位为非
2、逻辑移位指令
1)SHL逻辑左移
指令功能:
将8位、16位寄存器或存储器内容左移,移空的位补0
SHLOPRD,1
OR
SHLOPRD,CL
2)SAL算术左移
指令功能:
将8位、16位寄存器或存储器内容左移,移空的位补0
3)SHR逻辑右移
指令功能:
将8位、16位寄存器或存储器内容右移,移空的位补0
4)SAR算术右移
指令功能:
将8位、16位寄存器或存储器内容右移,移空的位由最高位补充。
5)ROL不带进位循环左移
指令功能:
将8位、16位寄存器或存储器内容左移,移空的位由移出位补充。
6)ROR不带进位循环右移
指令功能:
将8位、16位寄存器或存储器内容右移,移空的位由移出位补充
7)RCL带进位循环左移
指令功能:
将8位、16位寄存器或存储器内容左移,移空的位由CF位补充。
8)RCR带进位循环右移
指令功能:
将8位、16位寄存器或存储器内容右移,移空的位由CF位补充。
四、串处理指令
⏹源操作数指针DS:
SI,
目的操作数指针ES:
DI
⏹每操作一次SI,DI修改一次,方向由DF控制
⏹重复操作的退出
◆cx控制
◆条件控制(ZF标志)
⏹1、串传送指令MOVSB/MOVSW
⏹2、串比较指令CMPSB/COMPSW
⏹3、串搜索指令SCASB/SCASW
⏹4、串装入指令LODSB/LODSW
⏹5、串存储指令STOSB/STOSB
⏹6、指令前缀
⏹REP、REPZ/REPE、REPNZ/REPNE
五、程序控制转移指令
1、无条件转移指令
JMP目标地址
1)、段内直接转移
JMPLABEL
IP+位移量->IP
位移量=LABEL指令地址-JMP地址-3
2)、短转移指令
JMPLABEL
IP+CBW(位移量)->IP
位移量(8bit)=LABEL指令地址-JMP地址-2
3)、段内间接转移
JMPOPRD;
OPRD->IP
OPRD:
r,MEM
JMPAX
3)、段间直接转移
JMPfarLABEL
offestLABEL->IP
segLABEL->cs
4)、段间间接转移
JMPOPRD;OPRD:
MEM
offestOPRD->IP
segOPRD->cs
JMPDWORDPTR[SI]
2)用于无符号数的条件转移指令
① JA/JNBE;高于/不低于等于转移,CF∨ZF=0
② JNA/JBE;不高于/低于等于转移,CF∨ZF=1
③ JB/JNAE;低于/不高于等于转移,CF=1
④ JNB/JAE;不低于/高于等于转移,CF=0
3)用于带符号数的条件转移指令
① JG/JNLE
;大于/不小于等于转移,(SF∨OF)∨ZF=0
② JGE/JNL
;大于等于/不小于转移,(SF∨OF)=0
③ JL/JNGE
;小于/不大于等于转移,(SF∨OF)=1
④JLE/JNG
;小于等于/不大于转移,(SF∨OF)∨ZF=1
5、中断指令和中断返回指令
1)INTn中断指令
2)INTO溢出中断指令
3)IRET中断返回指令
六、处理器控制指令
1、标志控制指令
STC;使CF置1
CLC;使CF清0
CMC;使CF取反
STD;使DF置1
CLD;使DF清0
STI;使IF置1
CLI;使IF清0
2、外同步指令
•HLT处理器暂停指令
•WAIT等待指令
•ESC换码指令/交权指令
•LOCK总线封锁指令
•NOP空操作指令
存储器操作数的属性有三种:
段值、段内偏移量和类型。
⏹过程定义语句
过程名PROCNEAR/FAR
……
RET
过程名ENDP
⏹一、宏定义和宏调用
◆1、格式
宏指令名macro[参数表]
…;宏定义体
endm
1、8255A的工作方式
8255A有三种工作方式,它们是:
①方式0——基本输入/输出方式;
②方式1——选通输入/输出方式;
⑨方式2—一双向传送方式。
1.方式控制字
1、8255A工作在方式0
1、8255A工作在方式0
试编一程序要求七段发光二班管显示开关所拨通的数字
地址
A口:
8020H,B口:
8022H,
C口:
8024H,控制口:
8026H.
方式控制字
10011001B=99H
四、8253的编程
8253只有一个控制字,8253的一个方式控制字只决定一个计数通道的工作模式。
8253的控制字格式如图所示。
共分为4部分,通道选择、计数器读/写方式、工作方式和计数码的选择。
SC1SC0
对应的通道
RL1RL0
通道读写操作
M2M1M0
工作方式选择
BCD
计数制式选择
00
通道0
00
计数器锁存
000
工作方式0
0
二进制计数制
01
通道1
01
只读写低八位字节
001
工作方式1
1
BCD计数制
10
通道2
10
只读写高八位字节
X10
工作方式2
11
不用
11
读写16位
X11
工作方式3
100
工作方式4
101
工作方式5
中断条件
中断屏蔽触发器处于非屏蔽状态;中断允许触发器处于开中断状态
CPU响应可屏蔽中断申请必须满足的3个条件:
① 无总线请求;② CPU被允许中断;③ CPU执行完现行指令.
CPU响应中断后要自动完成三项任务
1、关闭中断;2、CS、IP以及FR的内容推入堆栈;3、中断服务程序段地址送CS中,偏移地址送IP中。
确定中断源的方法被称为中断源识别或中断方式
1、确定中断源,2、找到该中断服务程序的首地址。
一、查询中断
二、矢量中断中断申请信号INTR和中断响应信号INTA是一对握手信号
一类是由外部设备产生的中断,我们称之为硬件中断(外中断)。
对于硬件中断,又分为不可屏蔽中断和可屏蔽中断(中断允许触发器IF)
另一类是由指令在某种运行结果时产生的中断,我们称之为软件中断(除法中断溢出中断单步中断和断点中断软中断)
8086CPU的中断优先权排列从高到低为:
1、除法出错中断,溢出中断,INTn;
2、NMl;
3、INTR;
4、单步中断。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 期末 总结 必备
![提示](https://static.bdocx.com/images/bang_tan.gif)