安徽新华学院成人高等学历教育《汇编语言程序设计》课程2013年12月期末考试指导一、考试说明本课程为闭卷考试,考试时间90分钟,考试题型包括以下题型:1. 选择题(每题2分,共10分)2. 填空题(每空1分,共20分)3. 判断题(正确打√,错误打×,每题2分,共10分)4. 简答题(每题5分,共15分)5. 指出下列指令的错误(每题2分,共10分)6. 程序分析题(每空5分,共25分)7. 程序设计题(每空1分,共10分)二、课程知识要点第一章绪论1. 汇编程序是将汇编语言源程序翻译成二进制代码程序的语言处理程序,翻译的过程称为汇编。
2. 汇编语言的特点3. 数据的表示和类型(ASCII码和基本数据类型是重点)第二章 8086/8088寻址方式和指令系统1. 8086/8088寄存器组(各种寄存器的名称和功能)2. 存储器分段和地址的形成(存储单元中存放信息的原则,物理地址的计算方法,逻辑地址的表示方法,有效地址EA)3. 寻址方式的概念,能够判断寻址方式4.传输指令(1)数据传送指令.MOV 传送字或字节. (掌握课本30页图2.13)XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)(2)地址传送指令:LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送目标指针,把指针内容装入DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送目标指针,把指针内容装入ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.(3)堆栈操作指令,按照“后进先出”的原则,所有数据的存入和取出都在栈顶进行。
PUSH 把字压入堆栈. SP-2POP 把字弹出堆栈. SP+2(4)标志操作指令LAHF 标志寄存器传送,把标志装入AH.SAHF 标志寄存器传送,把 AH内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.5.算术运算指令ADD 加法.ADC 带进位加法.INC 加 1.SUB 减法.SBB 带借位减法.DEC 减 1.NEC 求反(以 0 减之).CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).MUL 无符号乘法.IMUL 有符号数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算)DIV 无符号除法.IDIV 整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)6. 逻辑运算指令(按位运算)AND 与运算.OR 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).6. 移位指令SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.移位一次时, 可直接用操作码. 如 SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如MOV CL,04SHL AX,CL7. 程序转移指令1> 无条件转移指令JMP 无条件转移指令2>条件转移指令课本54页表2.33>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX 不为零且标志Z=0时循环.JCXZ CX为零时转移.第三章汇编语言及其程序设计初步1. 汇编语言的语句——指令语句和伪指令语句的区别?2. 常数地址表达式3. 数据定义语句 DB DW DD重复操作符DUP4. 变量和标号的三个属性5. 析值操作符 OFFSET ,属性操作符PTR6. 符号定义语句段定义语句 ASSUME语句7. 一个完整的汇编语言源程序一般包含数据段、堆栈段、代码段。
8. 程序设计基础(1)顺序程序设计例1,例2(2)分支程序设计例1,例2(3)循环程序设计例1,例4第四章子程序设计和DOS功能调用1. 过程调用和返回指令 CALL RET2. 过程定义语句3. 主程序与子程序间的参数传递方法第五章输入输出与中断1. 数据传送方式2. 中断向量表三、重点习题1. 选择题(1)设SP的初值为1000H,执行指令PUSH AX后SP的值是( C )。
A.0FFFHB.1001HC.0FFEHD.1002H(2)指令JMP FAR PTR DONE属于(C )。
A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址(3)下面指令执行后,改变AL寄存器内容的指令是( D )。
A.TEST AL,02HB. OR AL,ALC. CMP AL,BLD. AND AL,BL(4)CBW指令的功能是( B )。
A.把源操作数的符号位扩展到目的操作数中B.把AL中的符号位扩展到AH中C.把AH中的符号位扩展到AL中D.把AX中的符号位扩展到DX中(5)下面指令执行后,变量DAB中的内容是(C )。
DAW DW 2A05HDAB DB 0FAHMOV AL,BYTE PTR DAWSUB DAB,ALA、 0DAHB、 0FAHC、 0F5HD、 0D0H2. 填空题(1)一个字存放到存储器中要占用连续的2个字节单元,低字节存放在地址较低的单元中,高字节存放在地址较高的单元中,字单元的地址采用它的低地址表示,并按照高高低低的原则来存储。
(2)VAR DB 5 DUP(8,2 DUP(5))”语句汇编应分配 15 个字节单元。
(3)任何变量都有段地址、偏移地址、类型三种属性。
(4). DB指令以字节为单位分配存储;DW指令以字为单位分配存贮;DD指令以双字为单位分配存储,故如下数据定义:V1 DB 4 DUP (2), 2COUNT EQU 10V2 DW COUNT DUP(?)为变量V1分配 5 个字节存储区;为变量V2分配 20 个字节存储区。
(5)汇编语言编程用的操作数有立即数、寄存器操作数和存储器操作数。
(6)假设存储器中各字节单元的内容是:(06925H)=12H,(06926H)=45H,(06927H)=78H,那么字单元(06925H)= 4512H ,字单元(06926H)= 7845H 。
(7)若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,[SI+COUNT]中,源操作数的有效地址EA 为20A8H,其物理地址为11488H。
3. 判断题(1)一个字存入堆栈时,堆栈指针SP+2修正;从堆栈中取出一个字时,SP-2修正. ( X )(2)调用程序和子程序可以在同一个代码段,也可以在不同的代码段。
(√)(3)汇编语言是用符号表示的面向机器的语言,因此它是机器语言。
( X )(4)堆栈以先进后出的方式工作。
(√ )(5)零标志ZF=1,表示计算结果为1。
( X)4. 简答题(1)寻址方式有哪几种?课本22页(2)某程序段如下:MOV DX,0ABCDHMOV AX,2345HMOV CL,4SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL下面的程序段执行完后,DX、AX的内容是什么?答:DX中的内容为0BCD2H, AX中的内容为3450H。
5. 指出下列指令的错误(1)MOV 1E0FH ,BX错误:目的操作数不能是立即数(2)DIV 12H错误:除法指令源操作数不能是立即数(3)MOV [BX] ,[SI]错误:源、目的不能同时为存储器寻址方式(4)SAL AH,4错误:当移位次数大于1时,应将移位次数放在CL寄存器中(5)MOV DL,AX错误:源操作数和目的操作数类型不一致6. 程序分析题(1). 设寄存器AL,BL,CL中内容均为34H,XOR AL,0FHAND BL,0FHOR CL,0FH执行上述指令序列后:AL= 3BH;BL= 04H;CL= 3FH。
(2)MOV AL , 0ABHMOV BL , 35HCALL SUB2INC ALDEC BL…………SUB2 PROCADD AL , BL ;XCHG AL , BL ;RETSUB2 ENDP执行结果:(AL)= 36H,(BL)=0DFH。
7. 程序设计题给出程序部分代码,请将空格处的其余程序代码补全。
写一个实现把一位十六进制数转换为对应ASCII码的程序。
十六进制数码与对应ASCII码的关系如下所示:;程序名:T3-7.ASM;功能:十六进制数到ASCII码的转换DATA SEGMENTXX DB 4 ;假设的十六进制数码ASCII DB ? ;存放对应的ASCII码DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX DATAMOV DS, AXMOV AL, XXAND AL, 0FH ;确保在0至F之间____________________________ ;超过9转移____________________________LAB1: ADD AL,37HLAB2: MOV ASCII,ALMOV AH,4CHINT 21HCODE _______________________说明:本考试指导只适用于2013-2014学年度第一学期期末考试使用,包括正考和补考内容。
指导中的章节知识点涵盖考试所有内容,给出的习题为考试类型题,请全体同学认真复习。
祝大家考试顺利!。