西北民族大学计算机科学与信息工程学院期末考试
汇编语言试卷(B卷)
专业: 课程代码:
学号: 姓 名:
总 分
题号
一
二
三
四
五
六
七
核分人
题分
20
20
12
14
10
12
12
复查人
得分
得 分
评卷人
一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其代码填入题干后的括号内。每小题1分,共20分)
1. n位二进制数可以
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示( C )个不同的数
A.2*n B.n2 C.2n D.n
2. 计算机中存储信息的基本单位是( B )
A.bit B.Byte C.K D.M
3. 表示运算结果是否产生溢出的是( A )
A.OF B.SF C.ZF D.CF
4. Pentium Pro的地址总线宽度为36位,则相应的地址范围为( D )
A.64K B.64M C.64B D.64G
5. 386系列CPU在保护模式下最基本的内存管理模式为( B )
A.段式管理 B.页式管理 C.段页混合管理 D.区段管理
6. 保存当前栈地址的寄存器是( A )
A.SS B.GS C.CS D.ES
7. i86CPU经加电复位后,执行第一条指令的地址是(D )
A. 0FFFFH B. 03FFFH C. 8FFFFH D.FFFF0H
8. MOV指令影响的标志位是( D )
A.SF B.DF C.CF D.不影响标志位
9. 指令MOV AX,[BP]使用的段是( C )
A.DS B.CS C.SS D.ES
10. 以下不是汇编语言合法标识符的是( C )
A.@DATA B.X?Y C.A+B D.$XYZ
11. 在medium内存模式中,如果参数采用栈方式传递,在被调用过程中取得最后一个调用参数可使用( D )
A.[BP] B.[BP+2] C.[BP+4] D.[BP+6]
12. 不改变CF标志的指令有( D )
A.CLD B.STC C.MUL D.INC
13. 可作为汇编语言变量名的有(C )
A.$ B.@DATA C.$_$ D.DB
14. 操作系统2号功能调用要输出的字符放在( D )寄存器中
A.AH B.AL C.DH D.DL
15. 同一字母的大写和小写方式的ASCII编码相差( C )
A.60H B.40H C.20H D.32H
16. 从功能上看,引起非顺序执行的指令有( B )
A.STD B.IRET C.AAD D.CBW
17. 如果CX的值为0,则LOOP指令定义的循环执行( D )次
A.0 B.1 C.无数 D.10000H
18. MOV AX,[DI]使用( B )段寄存器
A.CS B.DS C.ES D.SS
19. MOV AX,[BX+SI]中的加法由( C )执行
A.ALU B.EU C.地址加法器 D.BIU
20. 栈操作的默认地址是( D )
A.CS:IP B.DS:SI C.ES:DI D.SS:SP
得 分
评卷人
二、填空题(每空1分,共20分)
1. 十六进制数21转换为十进制数是 33 ,转换为2进制数是 00100001B 。
2. 86系列CPU在实模式下,物理地址由 16位段地址
和 16位偏移地址 组成。
3. 在实模式下,地址3015:002A存储单元的物理地址是 3017A 。
4. 把字数组LIST中的第6个字存入DX的指令为 MOV DX,LIST[12] 。
5. 执行SCAS指令时,增1或减1的的变址寄存器是 DI 。
6. “DIV CX”指令中,被除数 32 位。
7. 段定义有 完整段定义 和 简化段定义 两种方式。
8. 若二进制值01000001表示BCD数,则其值为__41_____________。
9. 执行性汇编语句由标号、硬指令助记符、操作数列表和注释四部分组成。
10. 结束程序执行是操作系统进程终止功能调用,如__INT 20H_____________________。
11. 不能修改其值的定义符号常量的伪指令是___5TFT5G5T____________伪指令。
12. 程序运行执行第一条指令前SS:SP的值、数据段内容、栈段的内容都已经初始化,这些功能由_________________________完成。
13. 在_______________内存模式下不需要使用.STACK分配栈空间。
14. 对于8086CPU, 16进制地址0040:0017对应的物理地址为______________。
得 分
评卷人
三、给出能实现指定功能的程序片段。
(每小题1分,共12分)
1. 将寄存器AX的内容压栈
2. 栈顶内容送到字变量VARW中
3. 清除CF标志
4. 将BX+DI地址的字送入AX
5. 将寄存器CX内容算术左移1位
6. 将寄存器AX中的带符号数取负(如:原值为-100则变为100)
7. 将寄存器BL的D6,D5,D4位取反
8. 将寄存器AX的内容除以10
9. 寄存器AL的内容存入ES:DI所指的内存地址
10. 若CX为零则转向短标号SLABEL
11. 将立即数20H送到20H端口
12. 用操作系统功能调用结束当前程序的运行
得 分
评卷人
四、判断题(认为对的,在题后的括号内打“√”,
认为错的打“×”。每小题1分,共14分)
1. SUB DX,12 ( )
2. MOV 100H,AX ( )
3. CMP DL,‘*’ ( )
4. ADD DS,1 ( )
5. DIV BX ( )
6. POP 2EFH ( )
7. JMP [BX] ( )
8. SHR CX,1 ( )
9. ADD BYTE PTR [BX],[SI] ( )
10. MOV AX,0B00H[BX][SI] ( )
11. LOOP SHORTLAB ( )
12. SUB CX,CS ( )
13. CALL FAR PTR [200H] ( )
14. PUSH FLAGS ( )
得 分
评卷人
五、简答题(每小题5分,共10分)
1. 什么是“小端方式”?对字和双字存储单元,什么是对齐地址?
2. 汇编语言调用C语言程序时需要注意哪些问题?
得 分
评卷人
六、程序填空题(每空1分,共12分)
设X、Y为WORD型变量。理解以下程序,填写空白。
1. 计算F(X,Y)=2X2+Y+5,结果为32位(DX,AX)
MOV AX,[X]
MOV BX,AX
①
SHL AX,1
RCL DX, ②
ADD AX, ③
ADC DX,0
④
⑤
2. 在C语言程序中调用汇编子程序“clearFlags”清除标志寄存器中的所有通用标志(即FLAGS的低8位),然后从3DAH端口读取一个字节返回,在C语言程序中以16进制方式显示读取字节的值。
C主程序:
main()
{
int cst;
cst = clearFlags();
① ;
printf(“%X”,cst);
}
汇编子程序:
②
③ PROC
④
SAHF
MOV DX,3DAH
⑤
⑥
⑦ ENDP
得 分
评卷人
七、程序设计题(每题6分,共12分)
1. 编写一个过程,以二进制数形式输出AX;
2. 写一个完整段定义格式的源程序,定义数据段从双字边界开始,其中定义一个200个字的数组,初值为-1,该段同时作为附加段