汇编语言试卷(A卷)
专业: 课程代码: 学号: 姓 名:
总 分 核分人 复查人 题号 题分 得分 一 20 二 20 三 12 四 14 五 10 六 12 七 12 一、单项选择题(在每小题的四个备选答案中,选出一个正确
得 分 评卷人 的答案,并将其代码填入题干后的括号内。每小题1分,共20
分)
1. 计算机中为便于存储及计算机的物理实现,采用( A )
A.二进制数 B.十进制数 C.八进制数 D.十六进制数 2. 为了区别不同数制的数,通常用字母( A )表示二进制数
A.B B.E C.F D.S 3. 在86系列的CPU中,访问I/O设备采用( B )方式
A.统一地址 B.独立地址 C.混合地址 D.直接地址 4. 表示串操作方向的是( D )
A.AF B.IF C.CF D.DF
5. 存储器分段时表示偏移地址是18位二进制代码,则一个段最多有( B )
A.128KB B.256KB C.512KB D.1MB 6. 保存当前栈顶偏移地址的寄存器是( A )
A.SP B.BP C.IP D.SS
7. 栈顶物理地址为24600H,执行完PUSH DX指令后,栈顶的物理地址为( D )
A. 24602H B. 24601H C.245FFH D.245FEH 8. 伪指令在程序( B )阶段被处理
A.编写 B.汇编 C.连接 D.运行 9. 指令MOV AX,[BP]采用的寻址方式是( B )
A.寄存器寻址 B.间接寻址 C.变址寻址 D.直接寻址 10. 一个完整、独立的汇编语言源程序可以没有( C )伪指令
A.段定义 B.存储模式定义 C.程序开始 D.程序结束
汇编语言试卷第1页(共7页)
11. 取指令操作的默认地址是( A )
A.CS:IP B.DS:SI C.ES:DI D.SS:SP 12. 在非串操作指令中用BX或DI作为基址时默认段地址是( B )
A.CS,不可用段超越 B.DS,可用段超越 C.ES,不可用段超越 D.SS,可用段超越 13. MOV AX,[DI]取得内存操作数由( D )执行
A.ALU B.EU C.地址加法器 D.BIU 14. JMP NEAR PTR [BX]使用( A )段寄存器
A.CS,DS B.DS,ES C.ES,SS D.DS,SS 15. 从功能上看,不引起非顺序执行的指令有( D )
A.RET B.CALL C.INT D.SCASB 16. 响铃符的ASCII编码为( D )
A.0DH B.0AH C.20H D.07H 17. 操作系统1号功能调用输入的字符存放在( B )寄存器中
A.AH B.AL C.DH D.DL 18. 不能作为汇编语言中标号的有( C )
A._A_ B.@6 C.AAA D.?DB? 19. 可能改变标志寄存器的值的指令有( D )
A.LODSB B.LODSW C.POP D.POPF
20. 在small内存模式中,如果参数采用栈方式传递,在被调用过程中取得倒数第2
个调用参数可使用( D ) A.[BP] B.[BP+2] C.[BP+4] D.[BP+6]
二、填空题(每空1分,共20分)
得 分 评卷人
1. 2D 127
2. CPU(或中央处理器) 内存 I/O子系统(或输入/输出子系统) 3. 注释 4. 3017A 5. ADD AL,[BX][SI] 6. SI+1000H 7. AX
9.汇编结束伪指令 11.等号(或=) 13.1024(或400H) 16.41H、42H
汇编语言试卷第2页(共7页)
8.65 10.汇编阶段 12.操作系统
14.64K(或65536,10000H,2) 17.从右到左
16
15.0FFFF0H(或FFFF:0000)
1. 二进制数101101转换为十六制数是 2D ,二进制数1111111转换为十进制数
是 127 。
2. 从微处理器的角度来看,计算机结构可分为 CPU 、
内存 和 I/O子系统 三个主要部分。
3. 汇编语言源程序中的每个语句由4部分组成,分别是:名字、操作码助记符、操
作数和 注释。
4. 在实模式下,地址3017H:000AH存储单元的物理地址是3017A 。
5. 把地址为BX+SI的存储单元中的数据与AL中的数值相加,结果存入AL的指令为
ADD AL,[BX][SI] 。
6. 指令“MOV DL,1000H[SI]”中源操作数的地址是 SI+1000H 。 7. 执行“MUL BL”之后,积存放在 AX 中。
8. 若二进制值01000001表示无符号数,其值为__65__。 9. 汇编语言程序的最后一条指令是___汇编结束伪指令___。 10. MOV AX,3*4中的乘法是在__汇编阶段__计算的。
11. 可以修改其值的定义符号常量的伪指令是__等号__伪指令。
12. MOV AX,@DATA中AX的值是由___操作系统___在程序运行之前传过来的。 13. .STACK伪指令默认分配__1024__字节的栈空间。 14. 在8086中,一个逻辑段最长为__64K _字节。
15. 8086CPU加电后执行的第一条指令的物理地址为__0FFFF0H __。
16. DB ‘AB’定义了2个字节,在内存中的16进制代码按顺序为__41H、42H _。 17. 调用C语言函数时参数的进栈顺序是___从右到左__。
三、给出能实现指定功能的程序片段。 (每小题1分,共12分)
1. 将寄存器AX置0
XOR AX,AX
2. 将寄存器AL内容送到DL中 MOV DL,AL
3. 将寄存器BX内容送到内存单元[7C01H]中 MOV [7C01H],BX
4. 将寄存器DX内容加上BX的内容,结果送到DX中 ADD DX,BX 得 分 评卷人 汇编语言试卷第3页(共7页)
5. 将寄存器CX内容加上立即数0A000H,结果送到CX中 ADD CX, 0A000H
6. 将寄存器AX内容减去0B800H,结果送到AX中
SUB AX,OB800H
7. 将寄存器AL的D6,D5,D1位清零 ADD AL,01100010B
8. 将寄存器DX:AX的内容除以内存DS:[4920H]的内容
DIV WORD PTR [4920H]
9. 将寄存器AL的内容乘BL的内容,结果送到BX寄存器 MUL BL MOV BX,AX
10. 若AX为零则转向短标号SLABEL
OR AX,AX JZ SLABEL
11. 将AX的一个字输出到端口3D9H MOV DX,3D9H OUT DX,AX
12. 操作系统1号功能调用(输入一个字符)
MOV AH,1 INT 21H
得 分 评卷人 四、判断题(认为对的,在题后的括号内打“√”,
认为错的打“×”。每小题1分,共14分)
汇编语言试卷第4页(共7页)
1. POP CS ( 0 ) 2. MOV AH,BH ( 1 ) 3. MOV DS,BX ( 1 ) 4. MOV AX,[SP+2] ( 0 ) 5. PUSH AH ( 0 ) 6. MOV CX,AX ( 1 ) 7. LEA BX,SI ( 0 ) 8. MUL AX,12H ( 0 ) 9. MOV SP,BP ( 1 ) 10. JMP [BX] ( 0 ) 11. ADD AL,10000B ( 1 ) 12. AND DS,0FH ( 0 ) 13. REPE MOVSB ( 1 ) 14. STD ( 1 )
得 分 评卷人 五、简答题(每小题5分,共10分)
1. 简述PC最低1M主存空间的使用情况;
最低1M主存空间从低地址到高地址可分为4个区段: 基本RAM区(0-9FFFFH):共640K,由操作系统管理;
保留的显示RAM区(A0000H-BFFFFH):共128K,由显示部件使用; I/O扩展ROM区(C0000H-DFFFFH):共128K,由扩展ROM使用; 系统ROM区(E0000H-FFFFFH):共128K,由BIOS使用。
2. 简述用缺省方式和Turbo C及Turbo Assember实现时,在C语言程序中调用汇编
语言子程序时程序中需要注意哪些方面?
汇编语言试卷第5页(共7页)
得 分 评卷人
六、程序填空题(每空1分,共12分)
设X、Y为WORD型变量。理解以下程序,填写空白。
1. 计算Y=|X|
①
TEST AX, ② ③ NEG AX
POS:MOV ④ , ⑤
2. 调用子程序SR1计算两个无符号字节参数84和96的乘积,将计算结果存入变量Y
中。
SR1 PROC NEAR PUSH BP MOV BP,SP
MOV AL, 81① MOV BL, 91 ② MUL BL
③ ④ SR1 ENDP
START:MOV AX, ⑤ PUSH AX MOV AX,94 PUSH AX
⑥
MOV [Y], ⑦
得 分 评卷人 七、程序设计题(每题6分,共12分)
1. 编写一个函数过程,将高2位在AX中、低2位在BX中用ASCII码表示的4位十
进制数转换为16位二进制数存放在AX中;
汇编语言试卷第6页(共7页)
2. 设程序开头几行为:
.model large .stack 512 .data
weight DQ ?
fmtstr DB ‘weight=’
其中变量weight表示一个64位的双精度浮点型变量,可调用外部无参数远过程getValue计算出变量weight的值,需要调用C语言的格式输出函数printf输出weight变量的值。写出该程序的后续部分,使之程序一个完整的程序。
汇编语言试卷第7页(共7页)
因篇幅问题不能全部显示,请点此查看更多更全内容