许昌学院2007—2008学年第二学期期末考试试题 试题名称: 汇编语言 试卷类型:A卷 使用专业:计算机科学与技术 使用年级: 06级本科
题号 得分 得分 评卷人
一、 填空题(每空2分,共20分)
1、 已知(SS)=3000H (SP)=0002H , (BX)=0100H, (SI)=0002H , MASK=1100H , (DS)=5000H ,( 50100)=78H ,(50101)=34H , (50102)=56H, (50103)=12H,(51200)=2AH ,(51201)=4CH,(51202)=B7H,(51203)=65H,(30001H)=21H (30002H)=34H (30003H)=87H填出下列各条指令执行完后AX寄存器的内容。
(1) MOV AX , 1200H AX= 1200 H (2) MOV AX , BX AX= 0100 H (3) MOV AX , [1200H] AX= 4c2a H (4) MOV AX , [BX] AX= 3478 H (5) MOV AX , 1100[BX] AX= H (6) MOV AX , [SP] AX= H (7) MOV AX , MASK [BX][SI] AX= H
2、 在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是 3017A H 3、 十六进制数D8H 被看作是用补码表示的带符号数时所表示的十进制数是 24 ; 被看作无符号数时所表示的十进制数是 252 。
得分 评卷人
二、 单项选择题(共20分,每小题2分)
( A )1、 语句DADA DW ‘AB’, ‘CD’, ‘E’,‘F’汇编后占用的存储空间是 。 A.4个字节 B. 8个字节 C. 6个字节 D.5个字节
( C )2、指令ADD AXM目的操作数, [BX][DI]源操作数中源操作数的寻址方式是 。 A.段内寄存器间接寻址 B. 段间寄存器间接寻址 C.基址加变址寻址 D. 寄存器寻址 ( C )3、把汇编语言源程序翻译成目标代码的程序是 。 A.编译程序 B. 解释程序 C. 汇编程序 D.连接程序 ( A )4、下列指令中,不影响标志寄存器的指令是 。 A. MOV B. TEST C. SAL D. CLD
( )5、 若AX=347DH,CX=56B8H,当AND执行逻辑与操作 AX,CX指令执行后,AX= 。 A .1438H A. 29998H
B. 77F8H
C. 0000H
D. 0FFFFH
D. 2FFFEH
( A )6、 若栈顶的物理地址为30000H,当执行完指令PUSH AX后,栈顶的物理地址为 。
B. 30002H
C. 200FEH
( )7、下面指令序列测试BH中的数是否为奇数, 若为奇数则转移至K1处,横线处的指令应为
TEST BH,01H K1
A. JNE B. JZ C. JS D. JC
( )8、 在标志寄存器中表示溢出的标志 C 。
A. AF B.CF C. OF D.SF
( )9、 已知AX=8065H,BX=103AH,则指令ADD BL,AL执行后,OF和CF的值分别为 A 。
《汇编语言程序设计》试卷A 第1页 共4页
一 二 三 四 五 总分 院系 计科院 专业___________________班级_________________姓名______________学号_____________________ ………………………密……………………………………封…………………………………线…………………………
A. 0,0 B. 0,1 C. 1,0 D. 1,1
( D )10、已知AL,CX中各存放一个带符号数,计算AL*CX的积,用下述程序段 。
A. XOR AH,AH B. CBW
C. XOR AH,AH D. CBW
IMUL CX 得分 评卷人
三、 判断题(共10分,每小题1分)
( F )1、MUL AX , BX
( F )2、SHL AX , 3 格式:OPR除立即数外任何寻址方式,CNT,如果移位大于1则在指令前把移位至于CL寄存器中 ( F )3、ADD AL, BX ( F )4、AND 10, AL
( F )5、指令执行后的结果为0,则ZF=0 ( T )6、MOV DS,AX
( T )7、IN AL, DX ( T )8、PUSH CS
( F )9、JMP BX无条件的转移到指令指定的地址去执行从该地址开始的命令。指令必须指定转移的目标地址(或称转向地址)。 JMP指令不影响条件码。 ( T )10、立即数不能直接送段寄存器。 得分 评卷人
四、 填程序题(每空3分,共30分)
1、下列程序段是比较AX,BX,CX中带符号数的大小,将最大的数放在AX中,将程序填充完整
CMP AX , BX
JP NEXT
XCHG AX , BX
NEXT: AX , CX JGE OUT AX , CX OUT:RET
2、 以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是求出它们的和送入SUM单元中。
BUF DW 5,6,7,58H,62,45H,127,…… COUNT EQU N ;COUNT等于变量BUF的字节数 SUM DW ? ┇
MOV SI,OFFSET BUF
MOV CX , COUNT MOV AX , 0 NEXT: MOV ADD SI , 2 LOOP NEXT
MOV SUM , AX 3、 执行下列指令后,填出AX的内容 TABLEA DW 10 DUP (?) TABLEB DB 10 DUP(?)
《汇编语言程序设计》试卷A 第2页 共4页
MUL CX MUL CX
IMUL CX
院系 计科院 专业___________________班级_________________姓名______________学号_____________________ ………………………密……………………………………封…………………………………线…………………………
TABLEC DB ‘1234’
MOV AX , LENGTH TABLEA AX=____________ MOV AX ,SIZE TABLEB AX=____________ MOV AX , BYTE TABLEC AX=____________ MOV AX , BYTE TABLEA AX=____________ 得分 评卷人
五、 综合题(共20分)
1、 简述80x86 CPU中寄存器组的分类,并说出每个寄存器的具体名称。(5分)
寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。程序可见的寄存器又可分为通用寄存器,专用寄存器和段寄存器。通用寄存器有:AX,BX,CX,DX和SP,BP,SI,DI。专用寄存器包括:IP,SP,和FLAGS3.SP为十六位寄存器。IP为指针寄存器,SP为堆栈指针寄存器,FLAGS为标志寄存器。
2、简述子程序与宏指令的相同和不同点。(5分)
?1,在源程序中通过书写宏名来引用宏,而子程序通过CALL来调用。2,宏调用是通过宏扩展来实现的,宏引用多少次就相应扩展多少次。所以引用宏不会缩短目标和程序。而子程序在目标程序中只出现一次,调用自程序是执行同一程序段,因此,目标程序也得到相应的简化 子程序:优点,模块化节省内存,可被多次调用,编程效率高。
缺点:额外开销大,增加了执行的时间。适用于子功能代码较长,调用比较频繁的情况。
宏调用:优点,参数传送简单,执行效率高。缺点:不节省空间,使用于子功能代码较短,传送较多的情况。
3、编制一个完整的源程序把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。(BX的初始值为8A12H)(10分)
DATA SEGMENT STR DB 'H',0AH,0DH,'$' CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DS,AX
MOV BX,1111110111100001B
MOV CH,4 ;循环四次 LOP: MOV CL,4
ROL BX,CL ;每次循环环左移四位 MOV DX,BX
AND DL,0FH ;每次取低四位,来表示一个十六进数 ADD DL,30H ;转化成为ASSIC码
CMP DL,3AH ;判断DL是否大于10的ASSIC码(A+30H) JB NEXT
ADD DL,7 ;大于10再加上7 NEXT: MOV AH,2 INT 21H DEC CH
JNZ LOP MOV DX,OFFSET STR MOV AH,9 INT 21H MOV AH,4CH INT 21HCODE ENDS END START
《汇编语言程序设计》试卷A 第3页 共4页
院系 计科院 专业___________________班级_________________姓名______________学号_____________________ ………………………密……………………………………封…………………………………线…………………………
《汇编语言程序设计》试卷A 第4页 共4页
因篇幅问题不能全部显示,请点此查看更多更全内容