<<汇编语言与接口技术>>(总结)复习提纲 第一部分 汇编语言及程序设计 一.基本知识 1. 汇编语言常用的名词术语
指令 代码指令 机器指令程序 汇编指令 汇编语言 汇编程序 汇编语言源程序
汇编 反汇编 偏移地址 有效地址 物理地址 过程 循环 过程标号 变量名的属性
指令:计算机能接受的最小命令,例如:加,减,乘,除,转移等 代码指令:与某条指令对应的二进制代码,或指令的数据表示
机器指令程序:代码指令依照某种算法并按照一定语法规则而作有序的排列 汇编指令:汇编语言规定的基本符号,每条机器指令都对应一条符号指令 汇编语言: 用符号表示指令的操作码和地址码的程序设计语言,面向机器的语言,亦称符号语言
汇编程序:把汇编指令翻译成机器指令的系统程序
汇编语言源程序:依据一定的算法并按照语法规则,把汇编指令作有序的排列
汇编:将汇编语言译成机器语言 反汇编:将机器语言译成汇编语言 地址
有效地址 有效地址EA是16位无符号数,表示操作数所在单元到段首距离即逻辑地址的偏移地址 实际地址
物理地址 等于有效地址+段地址 存储器中存储单元对应实际地址称物理地址
过程 P254
循环:分类:单重循环和多重循环 循环次数已知和未知 简单循环和变址循环
循环程序结构:要有准备、重复、修改、控制四个部分
编制步骤与方法:先编写工作不分,再准备,修改和控制若是多重循
环,先内层循环,后外层
重复前缀
宏定义:用一对伪操作 MACRO 括起来的一组有独立功能的程序代码(功
能是:括起一段程序代码,以便调用)
宏引用:在源程序中对经宏定义后的宏指令的调用,用宏指令名实现 宏扩展:是对宏调用的展开,由汇编程序实现 。具体要求是用宏定义体取代
宏指令名,而且实元取代宏定义中的形式参数/哑元/变元
过程标号
变量名的属性:段属性 SEGMENT 位移属性OFFSET 类型属性TYPE
(DB1个字节 DW2个字节 DD 4个字节 )
中断 :使中央处理器暂时挂起当前正在进行的工作并转向某紧急事件的服
务与处理程序(该服务与处理程序称为中断服务程序),在执行完中断服务程序后再返回到被中止的原有工作处的过 程。
或者指计算机的CPU暂时中止它正在执行的主程序,转去执行请求
1
中断的那个外设或事件的中断服务(处理)程序,待处理完毕后,又返回主程序,紧接被中断处继续执行,这样的一个过程称为中断。
中断源:引起中断的原因或发出中断请求的来源,称为中断源,包括外设中断源、故障中断源、软件中断源、为调试而设计的中断源
中断矢量表:中断服务程序的地址称为中断矢量,将全部中断矢量集中在1张表中,这张表称为中断矢量表。
中断向量 :中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)称为中断向量。
2.常用数制 二进制B 八进制Q 十进制D 十六进制H
补码的表示 正数的反码补码都等于原码;反码相当于原码符号位不变,其他的取反;补码是反码加1 BCD码的表示 31D的BCD码是0011 0001 3.寄存器:名称 种类及应用: 通用寄存器8个:数据寄存器(用于存放数据,16位或8位)AX/BX/CX/DX/ 变
址、指针寄存器(用于存放地址,16位)BP/SP/SI/DI
BX——基址寄存器
BP——基址指针寄存器(指明SS中有效地址) SP——堆栈指针寄存器(指明SS中有效地址) SI——源变址寄存器(字符串操作指令中) DI——目的变址寄存器(字符串操作指令中)
段寄存器4个:存放段地址,段首址,段基址 。16位 段地址的首地址必须取16的倍数,
20位物理地址=段地址×16d+偏移地址(段内地址) CS——代码段寄存器 DS——数据段寄存器 ES——特别段寄存器 SS——堆栈段寄存器 控制寄存器2个:
IP——指令指针寄存器(存放指令在内存中的偏移地址,并计算下一条指令的地址,与CS合用。指令的物理地址为:CS×10H+IP)
F(Flag)——状态标志寄存器(记录一条指令执行后的结果状态,入全为0,进位,溢出等等。)包括:AF——辅助进位标志(低四位向高四位进位或借位)CF——进位或借位标志 32位/16位:
4.寻址方式寻址方式种类(32位、16位) 操作数类型 存储器的存放规则 寻址方式种类:固定寻址、立即寻址(注意高字节存放的高地址,低字节存放在低地址)、寄存器直接寻址(实质指它存放的内容)、存储器直接寻址、寄存器间接寻址、变址寻址
操作数类型:立即操作数、寄存器操作数、内存操作数 寄存器的存放规则:
5.代码指令格式:从组成的字节看,由1—6个字节组成
从功能上看共分四个域(字段) 8个 操作码 操作数地址码 6.源程序的书写格式及正常结束P63 源程序的书写格式:完整段定义 正常结束
2
7.指令系统:操作数搭配的7个规则 (p39) 1.两个操作数要求字长匹配一致。 2.两个操作数不能同为M,不能同为段R(PUSH、POP、MOVS、CMPS除外)。 3.目的操作数不能取DATA。
4.十六进制数以字母开头时,需要在前面加0,以示与符号、助记符、变量名、标号等区别。
5.存储器操作数可以是字节、字、双字,类型不确定,需要用PTR说明。 6.绝大部分指令不用段R(MOV、PUSH、POP除外)。 7.传送指令绝大部分不影响标志位(除SAHF、POPF外)。主要是算术、逻辑运算指令影响标志位。
2.常用数制 二进制 八进制 十进制 十六进制 补码的表示 BCD码的表示 3.寄存器:名称 种类及应用(32位、16位) 8.常用伪指令
一1.Mov Ax , Bx? 经过汇编后变成机器代码指令
机器代码指令经过反汇编后?Mov Ax, Bx .如何用16位的地址访问期间1M空间
DS*10H + EA?实际地址 段地址 有效地址
Data Segment A DB??.
OFFSET A 是相对Data的偏移地址
B Proc B Endp
.用MACRO/ENDM括起一段程序____宏定义 在用到的地方写上宏名____宏调用
如: A MACRO B Proc ENDM B Endp 汇编时,宏定义体占用内存空间多,运算快. 而CALL节省空间,占用时间多 因为CALL B之前把下一条指令的有效地址入栈,再转去执行B,执行完又把断点出栈,继续执行主程序.所以花时间,速度慢.
2. 二进制 八进制 十进制 十六进制的相互转换.
3. 寄存器分为三大类:通用寄存器、段寄存器 控制寄存器 Flag
4. 7种寻址方式:种类;立即数、寄存器寻址不需要访问内存,变量名是访问内存;熟练掌握常用寻址方式。 一.1. 汇编指令(如下所示)
标号: 操作码 数据1,数据2;注释 AGAIN: Mov ax, bx
伪指令(如下所示)
3
名称 操作码 AA Segment
注:标号一定要有,表示转移地址 JMP AGAIN ,而名称不一定有
4. 程序结束,返回DOS指令 Mov AH,4Ch Int 21H
5. 汇编常用指令:
ADD、SUB、MOV 、MUL、DIV、SHR SHL、ROL、SAR、SAL、RCL等等
6. 常用伪指令
Segment/ENDS DB/DW PROC/ENDP EQU MACRO/ENDM ASSUME $ END
二.程序设计 1. 传送程序
按传送内容分:
MOV PUSH POP XCHG XLAT ;传送数据
2. 算术运算程序(+ - * /)
二进制运算:直接执行相应指令(有符号数、无符号数)
3. 程序设计的技巧(第3.3、3.4、3.5、3.6节)(3.5.3除外)
(第3.4节) 分支程序(例3.7除外) 比较无符号数的大小 比较有符号数的大小
标号: 比较指令 无条件转移 条件转移 (第3.5节) 循环程序(3.5.3除外)
迭代指令: LOOP
概念:单重循环 多重循环 简单、变址
(第3.6节) 子程序设计(3.6.5除外)
E(第十三章) 过程 过程的定义、构成、应用 三.DOS的内部调用
01H 02H 09H 0AH
01:从键盘输入一个字符并回显在屏幕上 02:显示一个字符 09:显示字符串
0A: 输入字符到缓冲区(ds:dx=缓冲区首址)
四.题型
改正指令 简答 计算 阅读程序 设计主要程序段/完整程序
第二部分 接口技术
4
一.内容 概念、术语、原理、工作方法;芯片内部结构、外部引脚
二.应用 1.CPU外部引脚、最小组态;(引脚定义见课本P100) 2.输入输出数据传送方式:无条件、查询、中断、DMA;
MN/MX*IO/M* RD* WR* +5V 系统总线信号
IO/M* RD* WR*
A19/S6~A16/S3 8088 A15~A8 AD7~AD0 ALE DT/R最小组态的总线时序 存储器写总线周期
T1 CLK IO/M*
A19/S6~A16/S3
A15~A8 AD7~AD0 ALE WR* READY
A7~A0 A19~A16 8282 STB OE* A19~A16
8282 STB OE* 8282 STB T A15~A8
OE* A7~A0 D7~D0
8286 T2 T3 T4 S6~S3 A15~A8 输出数据 (高电平)
T1状态——输出20位存储器地址A19~A0
IO/M*输出低电平,表示存储器操作; ALE输出正脉冲,表示复用总线输出地址 T2状态——输出控制信号WR*和数据D7~D0
5