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