汇编语言程序设计概要
- 格式:doc
- 大小:34.50 KB
- 文档页数:3
汇编语⾔程序设计第4章汇编语⾔程序设计§4.1 汇编语⾔的模式⼀、汇编语⾔源程序的⼀般模式[Name 模块名][Title 标题][定义宏][定义数据段][定义附加段][定义堆栈段]定义代码段源程序结束中括号括起的部分可以省略,可见在⼀个汇编语⾔源程序中必须要定义代码段,并且必须有源程序结束指令。
⼆、8086汇编语⾔程序的⼀个例⼦Pg90。
§4.2 语句⾏的构成汇编语⾔中的语句⼀般分为两种类型:指令性语句和指⽰性语句。
指令性语句的格式为:[标号:] 助记符 [操作数1[,操作数2]] [;注释]指⽰性语句的格式为:[名称] 助记符 [参数1,参数2,……] [;注释]标号和名称都是编程⼈员根据需要和⼀定的规则任意取的。
也可以认为汇编语⾔的语句⾏是由标记和分隔符(空格)构成。
⼀、标记1.IBM宏汇编的字符集(1)字母(2)数字符(3)特殊字符2.界符⽤于定界⼀个标记的结束或⼀个标记的开始,本⾝具有⼀定的意义。
3.常量出现在汇编语⾔源程序中的固定值称为常量。
(1)数值常量①⼆进制:以字母B结束。
②⼗进制:以字母D或⽆字母结束。
③⼋进制:以字母Q(或O)结束。
④⼗六进制:以字母H结束。
(2)字符常量指⽤单引号或双引号引起的字符或字符串。
4.标识符由程序员⾃⼰建⽴的字符序列(标号或名称)。
⼀个标识符不能超过31个字符,不能以数字开头。
5.保留字汇编语⾔中具有特殊意义的字符序列。
6.注释⼀⾏中分号以后的部分。
⽤于对⼀段或⼀⾏程序进⾏说明,便于阅读和理解。
⼆、符号具有⼀定意义的字符序列。
1.寄存器名2.变量段属性、偏移属性、类型属性3.标号段属性、偏移属性、类型属性4.常数5.其它三、表达式由操作数和运算符组合⽽成的序列。
1.操作数(1)⽴即数(2)寄存器操作数(3)存储器操作数2.运算符(1)算术运算符+、-、*、/、MOD(求余)(2)逻辑运算符AND、OR、NOT、XOR(3)关系运算符EQ、NE、LT、LE、GT、GE结果为“假”时,返回0,结果为“真”时,返回⼆进制全1。
汇编语言程序设计汇编语言程序设计课程旨在培养学生的编程能力、逻辑思维和解决实际问题的能力。
本课程通过学习汇编语言的基本语法规则和编程技巧,让学生能够理解计算机硬件和软件之间的交互关系。
为了达到这个目标,我们制定了以下教学计划和目标:一、课题1. 汇编语言程序设计2. 课程目标:掌握汇编语言程序设计的基本原理和方法,熟练使用汇编语言编写程序,解决实际问题。
3. 教学时长:共28课时,每周2课时,共4周完成全部课程内容。
二、课前准备1. 教学用具:黑板、投影仪、电脑、汇编语言程序设计教材等。
2. 教学内容:汇编语言程序设计的基本概念、语法规则、编程技巧等。
3. 案例和实践:从实际问题出发,设计案例,引导学生进行实践操作。
三、教学目标1. 了解汇编语言程序设计的基本概念。
2. 掌握汇编语言的语法规则和编程技巧。
3. 能够使用汇编语言编写简单的程序,解决实际问题。
四、教学重点1. 汇编语言程序设计的语法规则。
2. 汇编语言的实际应用。
五、教学难点1. 汇编语言的实际应用。
2. 对于汇编语言程序设计中的复杂问题,如何找到合适的解决方法。
六、课前导入1. 通过介绍汇编语言的背景和重要性,激发学生的学习兴趣。
2. 引导学生对汇编语言程序设计产生浓厚兴趣,激发学生的学习热情。
七、授课环节1. 介绍汇编语言程序设计的基本概念和语法规则。
2. 通过案例分析,让学生掌握汇编语言的编程技巧和实际应用。
3. 组织学生进行编程实践,通过完成一些简单的编程任务,让学生能够熟练使用汇编语言,提高学生的编程能力。
八、作业布置1. 要求学生针对一些实际问题,利用所学的汇编语言编程知识,编写简单的程序来解决。
2. 要求学生复习课堂所学内容,加强对汇编语言程序设计知识的理解和掌握。
九、课后小结1. 总结本次课程的主要内容,强调学生对汇编语言程序设计的应用能力。
2. 鼓励学生深入学习和实践,提出问题和探究更深层次的应用。
汇编语言程序设计
一 .选择题(只有一个正确答案,填在题干前的括号里)
1
.在机器内部操作中,CPU与存储器之间的任何信息交换使用的都是( )。
A.逻辑地址 B.物理地址 C.有效地址 D.相对地址
2.十进制数-80用16位补码表示是( )
A. FFBOH B. 8080H C. FF80H D. F080H
3.一个16位相对偏移量的范围是( )。
A. 0-65535 B. 0000H-FFFFH
C. 8000H-7FFFH D. 8000H-FFFFH
4. 操作码中的W位为1时,表示( )
A.字 B.字节 C.地址 D.操作
5.寻址方式字节中的MOD=11表示( )。
A.寄存器方式 B.存储器方式 C.段方式 D.堆栈方式
7. 能充当间接寄存器寻址方式的寄存器是___.
A.DI B.AH C.CH D.DH
8.在寄存器相对寻址方式MOV AX,[SI+DAT]中,偏移量DAT应是一个( )。
A. 原码 B.补码 C.反码 D.移码
9.在下述指令的表示中,不正确的是( )。
A. MOV AK,NUM[BX]
B. MOV AX,[BX]NUM[S1]
C. MOV AK,[BX+BP+NUM]
D. MOV AX,NUM[BP+D1]
10.执行相对寻址的跳转分支指令时,如果操作码放在地址0047H处,相对偏移地址是0CFH,
那么转移后在( )处取下一条指令的操作码。
A.0017H B.0018H C.0019H D.001AH
11.下述对PSW寄存器中标志位不产生影响的指令是( )。
A.JMP NEXT B.TEST AL,80H C.SHL AL,1 D.INC SI
12.进行两个补码整数9CH和7AH相加运算后,会产生( )。
A.无溢出且无进位 B.无溢出但有进位
C. 有溢出且有进位 D. 有溢出但无进位
13.指令JMP DWORD PTR[SI][BX]属于( )寻址。
A. 寄存器间接寻址 B. 相对基址变址寻址
C. 段内转移直接寻址 D. 段间转移间接寻址
14.从键盘输入一个十进制数3042,它所对应的非压缩型BCD码的存储形式是( )。
A. 03,00,04,02 B. 02,04,00,03
C. 33,30,34,32 D. 32,34,30,33
15.执行IMUL指令时,如果乘积的高一半不是低一半的符号扩展,则( )。
A. CF=0, OF=0 B. CF=0, OF=1
C. CF=1, OP=0 D. CF=1, OF=1
16.若(DS)=2000H,(BX)=0050H,(20050H);12H,(20051H)=34H,执行MOVAX,[BX]指令
后,AX寄存器中的内容是( )。
A.(AX)=0050H B.(AX)=0012H C.(AX)=1234H D.(AX)=3412H
17.下列描述不正确的是( )。
A.执行指令XOR AX,AX后不会改变累加器原有的内容
B.执行指令TEXTAX,8000H后,不会改变加器原有的内容
C.执行指令AND AX,0FFPFH后,不会改变累加原有的内容
D.执行指令OR AX,0000H后,不会改变累加器原有的内容
18.对于SAL AL,1指令,若AL中带符号在指令执行后符号有变,则可通过( )确认。
A.OF=1 B.OF=0 C.CF=1 D.CF=0
19.ADD CL,BH 的机器语言为:00000010 11001111,其中第十五和十六、十七位表示( )。
A.CL B.BH C.BL D.CH
20.若某数据段定义如下:
DATA SEGMENT
F1 DB]5H, 28H, 46H, 34H
F2 DW 3356H,2536H,1242H
F3 DD 4 DUP(?)
DATA ENDS
则执行指令语句:MOV AH,TYPE Fl
MOV AL,TYPE F2
之后,AX中的内容为( )。
A.102H B.104H C.201H D.以上均不正确
二 .填空题
1.软件是为了____、_____和维护计算机而编制的各种____的总和。
2.
PSW是一个16位的寄存器,其中状态标志位有_______位,控制标志位有_____
位。
3.条件转移指令根据上一条指令所设置的_____来判别测试条件。
4.变量仅代表本数据存储区中的____数据单元。
5._____运算符分离出其后变量或标号所在段的段首址。
6.操作数项由一个或多个______组成,多个操作数项之间一般用逗号分开。
7.在顺序结构的流程图中,执行框有_____个,但判断框 。
8.LOOP指令往回转向的标号离该指令的下一条指令所在地址的距离范围为____字节。
9.若测试比较的结果表明_____循环条件,则继续循环,否则结束循环。
10.在循环结构执行过程中,对循环体先执行,后判断的循环结构称为____ 循环结构;对
循环体先判断,后执行的循环结构称为______循环结构。
三 .编程题
1 . 编一程序将字节变量DATAl中的压缩BCD数转换成二进制数,并将其存储到原变量中去
的程序。
2.编写一程序段,将AL中的第7位和第0位,第6位和第1位,第5位和第2位,第4位
和第3位互换。。
3. 设在DAT单元存放一个-9~+9的字节数据,在SQRTAB 数据区中存放了0~9的平方值,
请用直接查表法编写一个 子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR
单元。并写出主程序的调用方式。