一、课程信息
课程名称:汇编语言 课程类型:计算机专业基础课程
课程代码: 授课对象:13计算机专业(本科) 学 分: 4 先 修 课: 数字电子技术 学 时: 后 续 课: 计算机开发应用 制 定 人:江禹文 制定时间:2015-6-6
二、课程性质
该课程在计算机软件工程专业课程体系中,作为专业支撑课程,系统全面地讲解现代微型机的基本原理,详细介绍IBM—PC计算机的寻址方式和8086/8088指令系统;汇编语言程序设计方法和上机方法等相关知识,为学生学习计算机组成原理、操作系统和计算机软硬件开发等课程打下基础,本课程以应用为原则,重视实践,贴近岗位需要,全面提高学生的职业素质养和职业能力。
三、课程内容设计
模块设计表:
教学模块(子项目名称)
学时 6 4 4 6 4 8 8 6 46 第1章 1、微型计算机数据表示 2、微型计算机系统组成原理8086微处理器 3、寻址方式及8086/8088 的指令系统 4、汇编语言程序设计 参考程序 第2章 数据传送 第3章 算术运算与逻辑运算 第4章 选择与循环 第5章 子程序调用 合计
1
四、期末考核形式、范围、知识点和重点:
考核形式:填空题、选择题、分析判断题、问答题和综合题,闭卷考试。
复习范围:
第1、2、3、4、章
主要知识点和重点:
一、微机基础知识
1、微处理器、微型计算机、微机系统
微处理器:指计算机内部对数据进行处理并对处理过程进行控制的部件,伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上,这种具有处理器功能的大规模集成电路器件,被统称为“微处理器”。
微型计算机:简称“微型机”、“微机”,也称“微电脑”。由大规模集成电路组成的、体积较小的电子计算机。由微处理机(核心)、存储片、输入和输出片、系统总线等组成。特点是体积小、灵活性大、价格便宜、使用方便。
微型计算机系统:简称“微机系统”。由微型计算机、显示器、输入输出设备、电源及控制面板等组成的计算机系统。配有操作系统、高级语言和多种工具性软件等。
2、数制及转换,计算机中的信息表示 3、微型机的组成原理 4、习题:P21
答:两个8位补码表示的有符号数相加时,下列情况会使进位标志等于“1”: 两个负数相加;
两个异号数相加,和为正(不会产生溢出)。
两个8位补码表示的有符号数相减时,下列情况会使借位标志等于“1”: 两个同号数相减,差为负(不会产生溢出); 正数减负数(有可能产生溢出);
二、8086微处理器 习题 P22 13=19 三、寻址方式和指令系统.
2
习题 P48 2、3、4、5
四、汇编语言程序设计 4.1 4.2
1、汇编语言、汇编语言程序 2、段结构和两种语句格式
3、伪指令 P24
3、汇编四种程序结构
第2章 数据传送 2.1 2.2 2.3 习题 P48 第3章 算术运算与逻辑运算 习题 P87 1、4、9、16 3.1 算术运算 P57 例3-4 顺序结构 S=86H*34H-21H P87习题3.4
3.4 逻辑运算 3.5 控制台输入输出
第4章 选择与循环
4.1 测试与转移
4.2 选择结构 P98 例4-2
4.3 循环结构 P108 例4-8 P58 例3-5
第5章 子程序调用 P136 P141 例5-2
3
重点:
1、什么是汇编语言?什么是汇编语言程序?
汇编语言是一种面向机器的“低级语言”,它和机器语言一样,是电子数字计算机的“母语”。(前者为书本p1页的内容)是汇编指令集、伪指令集和使用它们规则的统称,使用具有一定含义的符号为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令。
汇编语言程序也称为汇编语言源程序,就是用汇编语言编写的一种计算机程序, 属于计算机低级语言程序,是属性为ASM的源文件。
2、常用指令 MOV、PUSH、POP、IN、OUT、ADD、SUB、AND、OR、XOR、CMP、TEST的用法。
MOV(MOVe) 传送指令 PUSH 入栈指令 POP 出栈指令
XLAT(TRANSLATE) 换码指令
LEA (Load Effective Address) 有效地址送寄存器指令 LDS(Load DS with pointer) 指针送寄存器和DS指令 LES(Load ES with pointer) 指针送寄存器和ES指令 LAHF(Load AH with Flags) 标志位送AH指令 SAHF(Store AH into Flgs) AH送标志寄存器指令 PUSHF(PUSH the Flags) 标志进栈指令 POPF(POP the Flags) 标志出栈指令 ADD 加法指令 ADC 带进位加法指令 INC 加1指令
SUB(SUBtract) 不带借位的减法指令 SBB(SuVtrach with borrow) 带借位的减法指令 DEC(DECrement) 减1指领 NEG(NEGate) 求补指令 CMP(CoMPare) 比较指令
4
MUL(unsinged MULtiple) 无符号数乘法指令 IMUL(sIgned MUL tiple) 有符号数乘法指令 DIV(unsigned DIVide) 无符号数除法指令 IDIV(sIgned DIVide) 有符号数除法指令 CBW(Count Byte to Word) 字节转换为字指令 CWD(Count Word to Doble word) 转换为双字指令 DAA 压缩的BCD码加法十进制调整指令 DAS 压缩的BCD码减法十进制调整指令 AAA 非压缩的BCD码加法十进制调整指令 AAS 非压缩的BCD码加法十进制调整指令 AND 逻辑与指令 OR 逻辑或指令 XOR 逻辑异或指令 NOT 逻辑非指令 TEST 测试指令
SHL(SHift logical Letf) 逻辑左移指令 SHR(SHift logical Right) 逻辑右移指令 ROL(Rotate Left ) 循环左移指令P58 ROR(Rotate Right) 循环右移指令P58
RCL(Rotate Left through Carry) 带进位循环左移 RCR(Rotate Right through Carry) 带进位循环左移 MOVS(MOVe String) 串传送指令 STOS(STOre into String) 存入串指令 LODS(LOad from string) 从串取指令 REP(REPeat) 重复操作前
CLD(CLear Direction flag) 清除方向标志指令 STD(SeT Direction flag) 设置方向标志指令 CMPS(CoMPare String) 串比较指令 SCAS(SCAn String) 串扫描指令
5
REPE/REPZ(REPeat while Equal/Zero)相等/为零时重复操作前缀 REPNE/REPNZ(REPeat while Not Equal/Zero)不相等/不为零进重复前缀 IN(INput) 输入指令 OUT(OUTput) 输出指令 JMP(JuMP) 无条件转移指令
JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ 条件转移指令 LOOP 循环指令P70
LOOPZ/LOOPE 为零/相等时循环指令 LOOPNZ/LOOPNE 不为零/不相等时循环指令 CALL 子程序调用指令 RET(RETun) 子程序返回指令 CLC(CLear Carry) 进位位置0指令 CMC(CoMplement Carry) 进位位求反指令 SRC(SeT Carry) 进位位置1指令 NOP(No OPeretion) 无操作指令 HLT(HaLT) 停机指令 OFFSET 返回偏移地址 SEG 返回段地址 EQU(=) 等值语句 PURGE 解除语句
DUP 操作数字段用复制操作符 SEGMENT,ENDS 段定义指令 ASSUME 段地址分配指令 ORG 起始偏移地址设置指令 $ 地址计数器的当前值 PROC,ENDP 过程定义语句
NAME,TITLE,END 程序开始结束语句 MACRO,ENDM 宏定义指令
6
JZ OPR //结果为零转移 JNZ OPR //结果不为零转移 JS OPR //结果为负转移 JNS OPR //结果为正转移 JO OPR //溢出转移 JNO OPR //不溢出转移 JP OPR //结果为偶转移 JNP OPR //结果为奇转移 JC OPR //有进位转移 JNC OPR //无进位转移
3、什么叫寻址?试说明8086 CPU 有哪几种寻址方式
寻址方式:通俗点说,就是CPU往内存存取数据的过程。寻址嘛,就是寻找地址,寻找数据该往哪里放或者该从哪里取的地方。
(1)立即数寻址; (2)寄存器寻址; (3)直接寻址; (4)寄存器间接寻址; (5)I/O寻址; (6)基址变址寻址方式;(7)相对基址变址寻址方式 4、16位微处理器内部结构、寄存器组和存储器组织结构。 内部结构:
7
寄存器组:
8
存储器结构:
9
10
11
5、汇编程序的四种结构
1.顺序程序结构 2.分支或选择程序结构 3.循环程序结构 4.子程序
6、下列是将字节数组ARRAYDE 的20 个元素清零的程序: P58 例3-5 1)、汇编语言源程序结构中,循环结构程序由哪三部分组成? 初始化部分;循环体(工作部分和修改部分);(循环)控制部分。
12
2)、试写出程序中两种不同的语句实例? 略。
7、完善实现:P57 例3-4 的源程序 EX304.ASM 略。
1)、分析该程序的段结构。
2)、. 试问,该程序属于哪种程序结构?为什么?
8、分支结构程序是根据不同的情况或条件,需要进行不同的处理。试述分支结构程序的逻辑结构,并指出在这种结构中常用的指令?
首先通过运算、比较、测试指令建立新的标志位,然后,再对由各个标志位反映的条件进行判断,之后根据真假执行相应的选择操作。 CMP、JMP、JCC,TEST,BT
9、下列是实现 S= 86H x 34H - 21H 的源程序:
1)、指出程序中哪些是名字、标号和伪指令?
实例: 冯 P170 例4-16 下列是实现 S= 86H x 34H - 21H 的源程序:
DATA SEGMENT NUM DB RESULT
86H, 34H, 21H DB ?
DATA ENDS
13
CODE SEGMENT
ASSUME CS: CODE DS: DATE
MAIN: MOV AX, DATA
MOV DS, AX LEA LEA
SI, NUM DI, RESULT
MOV AL, [SI] MOV BL, [SI+1] MUL
BL
MOV BL,[SI+2] MOV BH, 0 SUB
AX, BX
MOV [DI], AX MOV AH, 4CH INT
21H
CODE ENDS
END
MAIN
名字:由字母、数字等组成(但不能以数字开头)。 1. 例如 段名、过程名、模块名、
变量名、标号名等
名字经常表示符号地址,主要是变量、标号 标号:(程序标号)
定义在程序段(加冒号:)的名字。 代表一条指令(首字节)的地址。 有两方面属性:
地址属性(段基址和偏移地址)。 类型属性(远-2/近-1)。
标号在程序中一般可理解成地址。 伪指令:(伪操作):
指示性操作 指示MASM和LINK程序工作
14
在汇编和连接过程中完成
伪指令的操作符本身无机器码对应
2)、试分析该程序属于哪种程序结构?为什么?
顺序结构;编写程序的时候写在前面的指令先被执行,写在后面的指令较后被执行,按照编写的顺序执行,每条指令执行一次。且从开始到结束,无分支,故为顺序结构。
10、子程序调用程序格式 P136 P141 略。
例5-2 15
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务