内容正文:
四川省(电子信息大类)对口招生《单片机原理与应用》
复习讲义
模块 4 程序设计方法
考点一 汇编语言基础
【考纲要求】
熟悉汇编指令的功能及操作方式。
【知识网络】
【知识和技能要点】
1、 机器语言、汇编语言和高级语言
用于程序设计的语言基本上分为3种:机器语言、汇编语言和高级语言。
1. 机器语言
二进制代码表示的指令、数字和符号简称为机器语言不易懂,难记忆,易出错。
2. 汇编语言
英文助记符表示的指令称为符号语言或汇编语言,将汇编语言程序转换成为二进制代码表示的机器语言程序称为汇编程序
经汇编程序“汇编(翻译、编译) ”得到的机器语言程序称为目标程序,原来的汇编语言程序称为源程序。
汇编语言特点:
面向机器的语言
助记符指令和机器指令一一对应,用汇编语言编写的程序效率高,占用存储空间小,运行速度快,用汇编语言能编写出最优化的程序。
能直接管理和控制硬件设备(功能部件),它能处理中断,也能直接访问存储器及I/O接口电路。
汇编语言和机器语言都脱离不开具体机器的硬件,均是面向“机器”的语言,缺乏通用性。
3. 高级语言
不受具体机器的限制,使用了许多数学公式和数学计算上的习惯用语,非常擅长于科学计算。
高级语言优点:通用性强,直观、易懂、易学,可读性好。
2、 汇编语言语句的种类和格式
(1) 两种基本类型:指令语句和伪指令语句
(1) 指令语句,即指令系统,每一条指令语句在汇编时都产生一个指令代码——机器代码
(2) 伪指令语句,是为汇编服务的,是指示性语句。在汇编时没有机器代码与之对应。
(2) 汇编语言的四分段格式如下:
标号字段 操作码字段 操作数字段 注释字段
规 则:
(1) 标号字段和操作字码段之间要有冒号“:”相隔;
(2) 操作码字段和操作数字段间的分界符是空格;
(3) 双操数之间用逗号相隔;
(4) 操作数字段和注释字段之间的分界符用分号“;”相隔。操作码字段为必选项,其余各段为任选项。不区分大小写
基本语法规则:
1. 标号字段,是语句所在地址的标志符号
(1) 标号后边必须跟以冒号“:”
(2) 由1 ~8个ASCII字符组成
(3) 同一标号在一个程序中只能定义一次
(4) 不能使用汇编语言已经定义的符号作为标号
2. 操作码字段
是汇编语言指令中唯一不能空缺的部分。汇编程序就是根据这一字段来生成机器代码的。
3. 操作数字段
通常有单操作数、双操作数和无操作数三种情况。如果是双操作数,则操作数之间,要以逗号隔开。
(1) 十六进制、二进制和十进制形式的立即数的表示
采用十六进制形式来表示 ,某些特殊场合才采用二进制或十进制的表示形式 。
十六进制,后缀“H” 。
二进制,后缀“B” 。
十进制,后缀“D” ,也可省略。
若十六进制的操作数以字符A~F中的某个开头时,则需在它前面加一个 “0”,以便在汇编时把它和字符A~F区别开来。
(2) 工作寄存器和特殊功能寄存器的表示
采用工作寄存器和特殊功能寄存器的代号来表示,也可用其地址来表示。
例如,累加器可用A(或Acc)表示。也可用0E0H来表示,0E0H为累加器A的地址。
(3) 美元符号$的使用
用于表示该转移指令操作码所在的地址。例如,如下指令:
JNB F0, $ 与如下指令是等价的: HERE:JNB F0,HERE
再如 : HERE:SJMP HERE 可 写 为: SJMP $
4. 注释字段
必须以分号“;”开头,换行书写,但必须注意也要以分号“;”开头。汇编时,注释字段不会产生机器代码。
3、 汇编语言源程序的汇编
汇编语言源程序 “翻译”成机器代码(指令代码)的过程称为“汇编”。汇编可分为手工汇编和机器汇编两类:
1. 手工汇编
人工查表翻译指令。但遇到的相对转移指令的偏移量的计算,要根据转移的目标地址计算偏移量,不但麻烦,且容易出错。
2. 机器汇编
用编辑软件进行源程序的编辑。编辑完成后,生成一个ASCII码文件,扩展名为“ .ASM”然后在微计算机上运行汇编程序,把汇编语言源程序翻译成机器代码。
【练习题】
1、 填空题
1.用于程序设计的语言基本分为三种,分别是机器语言、________和高级语言。
2.经汇编程序“汇编”得到的机器语言程序称为________,原来的汇编语言程序称为源程序。
3.汇编语言和机器语言都脱离不开具体机器的硬件,均是面向________的语言,缺乏通用性。
4.汇编语言的两种基本语句类型是________和伪指令语句。
5.汇编语言语句中,标号字段和操作码字段之间需用________相隔,操作数字段和注释字段之间需用分号相隔。
6.汇编语言中,十六进制数的后缀是________,二进制数的后缀是B,十进制数的后缀可省略或用D。
7.累加器A的地址是0E0H,其代号还可以表示为________(写出一种即可)。
8.汇编语言源程序“翻译”成机器代码的过程称为________,可分为手工汇编和机器汇编两类。
二、选择题
1.以下哪种程序设计语言是用二进制代码表示指令、数字和符号的?( )
A.高级语言 B.汇编语言 C.机器语言 D.自然语言
2.将汇编语言程序转换为机器语言程序的过程称为( ),完成该过程的程序称为汇编程序。A.编译 B.汇编 C.解释 D.执行
3.下列关于汇编语言特点的描述,错误的是( )
A.面向机器,与机器指令一一对应
B.通用性强,可在任意机器上运行
C.能直接控制硬件设备
D.编写的程序效率高、占用存储空间小
4.高级语言的核心优势不包括( )
A.通用性强 B.直观易懂、易学
C.直接访问存储器及I/O接口 D.可读性好
5.汇编语言中,每一条指令语句在汇编时会产生对应的( )
A.源程序 B.目标程序
C.机器代码 D.ASCII码文件
6.汇编语言语句的四分段格式中,唯一不能空缺的字段是( )
A.标号字段 B.操作码字段
C.操作数字段 D.注释字段
7.若十六进制操作数以字符A开头,汇编时需在其前面加一个( ),以区分字符和数字。
A.1 B.0 C.H D.#
8. 汇编语言中,美元符号$的作用是( )
A. 表示十六进制数 B.表示十进制数
C.表示转移指令操作码所在地址 D.表示注释开始
9.下列关于伪指令语句的描述,正确的是( )
A.伪指令语句在汇编时会产生机器代码
B.伪指令语句是为汇编服务的指示性语句
C.伪指令语句必须包含标号字段
D.伪指令语句的操作数字段不可省略
10.机器汇编过程中,编辑完成的汇编语言源程序生成的文件扩展名是( )
A..EXE B..OBJ C..ASM D..COM
三、判断题
1.机器语言易懂、易记忆,不容易出错,是最常用的程序设计语言。( )
2.汇编语言的助记符指令和机器指令一一对应,用汇编语言能编写出最优化的程序。( )
3.高级语言能直接管理和控制硬件设备,可处理中断、直接访问存储器。( )
4.伪指令语句在汇编时会产生对应的机器代码,用于控制程序的执行。( )
5.汇编语言语句的四分段格式中,所有字段都是必选项,不能省略。( )
6.同一标号在一个汇编程序中可以定义多次,不影响程序执行。( )
7.汇编语言中,双操作数之间需用逗号相隔,操作码字段和操作数字段之间需用空格相隔。( )
8.注释字段必须以分号开头,换行书写时无需再加分号。( )
9.机器汇编时,需先编辑源程序生成.ASM文件,再运行汇编程序将其翻译成机器代码。( )
10.汇编语言和高级语言都具有通用性,可在不同类型的机器上运行。( )
四、分析题
1.分析下列汇编语言语句是否符合四分段格式规则,若不符合,请说明错误原因:
START:MOV A,#0FH;给累加器A赋值0FH
2.已知某汇编语言语句为“SJMP $”,请分析该语句的含义,并用另一种等价的形式写出该语句。
【答案】
1、 填空题
1. 汇编语言 2.目标程序
2. 机器 4.指令语句
5.冒号(:) 6.H
7.Acc 8.汇编
二、选择题
1.C 2.B 3.B 4.C 5.C
6.B 7.B 8.C 9.B 10.C
三、判断题
1.× 2.√ 3.× 4.× 5.×
6.× 7.√ 8.× 9.√ 10.×
四、分析题
1.符合规则。标号字段(START)与操作码字段(MOV)用冒号相隔,操作码与操作数(A, #0FH)用空格相隔,操作数与注释用分号相隔,格式正确。
2.含义:跳转到当前转移指令操作码所在的地址(即原地循环);等价形式:LOOP: SJMP LOOP(LOOP可替换为任意合法标号)。
【真题演练】
1.(24单招,单选题)单片机能够直接识别并执行的语言是以下哪一种。( )
A.机器语言 B.汇编语言
C.C语言 D.高级语言
2.(24单招,判断题)伪指令在编译后会产生对应的机器代码。( )
【答案】
1.A 2.×
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$