东大23年9月《汇编语言程序设计》复习题及答案
发布时间:2023-09-17 08:09:38浏览次数:55 1 / 8东 北 大 学 继 续 教 育 学 院汇编语言程序设计 复习题 一、单项选择题(从四个备选答案中选出一个正确的答案填在题干的括号内)( )1. 指令 MOV AL,[BX]的源操作数的寻址方式为?A. 基址寻址 B. 寄存器间接寻址 C. 变址寻址 D.基址变址寻址( )2.确定下列哪些数据在汇编语言中的表示是错误的?A. 2 AND 3*5 B. 2+10B C. AX+3 D. 10H SHL 2( )3.若栈顶指针 SP 的值为 100H,当执行完指令 CALL AX 后,SP 的值为?A. 00FCH B. 0098H C. 00FEH D. 0102H( )4. 已知在寄存器 AX 和 BX 中分别存放着一个带符号数据,在满足条件 AX≥BX 时转到标号 OK 去执行,能实现该功能的程序段是? A. CMP AX,BX B. CMP AX,BX JAE OK JNB OK C. CMP AX,BX D. CMP AX,BX JG OK JGE OK( )5. 下列程序段在语法上是正确的是?A. X1 DB ‘ABCD’ B. X1 DW ‘ABCD’C. X1 DD ‘ABCD’ D. X1 DB 1234H( )6. 已知 AL=87H,BL=34H, 则指令 ADD AL,BL 执行后,OF 和 CF 的值分别为? A. 0,0 B. 0,1 C. 1,0 D. 1,1( )7. 已知 AL,BX 中各存放一个无符号数,计算 AL 和 BX 的乘积,用下述哪个程序段? A. MUL BX B. IMUL BX课程名称: 汇编语言程序设计
2 / 8 C. CBW D. XOR AH,AH MUL BX MUL BL( ) 8. NEXT 是程序中某指令语句标号,下述哪个程序段不能实现转移到 NEXT语句执行。 A. JMP NEXT B. MOV BX, OFFSET NEXT JMP BX C. MOV BX, NEXT D. LEA AX, NEXT JMP BX JMP AX( )9. 初始化 8259A 时,ICW2 的值为 18H,当 IR3 端有中断请求时,8259A 送出的中断方式码是什么?A. 10H B. 13H C. 18H D. 1BH( )10. 在两个 8259A 级联的中断系统中,从 8259A 连接在主 8259A 的 IR5 上,主8259A 和从 8259A 的 ICW3 应设置为多少?A. 20H,05H B. 10H,05H C. 05H,05H D. 20H,20H二、判断题(判断每题正误,对的在题后括号内划“√ ”,错的划“ ×”)1. MOV DS, 2000H ( ) 6. LEA BX, AX ( )2. MOV SI,[SI] ( ) 7. OUT DX,AL ( )3. IN AL, 200H ( ) 8. JS [BX] ( ) 4. PUSH AL ( ) 9. LOOP AX ( )5. XCHG AX, 1234H ( ) 10. CALL AX ( ) 三、填空题1.已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6 分)指 令 有效地址 实际地址课程名称: 汇编语言程序设计
3 / 8MOV AL,CS:[SI+100H]MOV AL,[BP+200H]MOV [BX+SI-100H],AL2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4 分)DATA1 DB -32,‘XY’DATA2 DW -32,‘XY’DATA1 DATA23. 已知部分中断向量表的内容给出如下, 则方式码为 13H 的中断服务程序的入口偏移地址为( ),段地址为( )。(4 分)C>DEBUG-d 0:00000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 000000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0 0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0 0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00 0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD 0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06 0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06 0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0 4.依据下述子程序说明文件把子程序补充完整。(6 分)(1)子程序名:MSUB(2)子程序功能:求两个多字节数据之差(3)入口条件:两个数据的低字节地址分别在 SI 和 DI 中,数据长度在 CL 中(4)出口条件:差的低字节地址在 SI 中(5)受影响的寄存器:FMSUB PROC NEAR课程名称: 汇编语言程序设计
4 / 8PUSH AXPUSH DIPUSH SIPUSH CX CLCAGAIN:MOV AL,[DI] ( ) ( ) ( )DEC CLJNZ AGAINPOP CXPOP SIPOP DIPOP AX RETMSUB ENDP四、改错题。下列程序有错, 请将它们找出并改正过来。已知程序欲完成的功能是从两个带符号数中选出较大者送入 MAX 单元, 若二者相同, 将 MAX 清 0。要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的答案即可。1. SEGA SEGMENT4. DAX: DB A0H8. DAY DB 1000H12. MAX DB 015. SEGA ENDS18. CSEG SEGMENT21. ASSUME CS:CSEG; DS:SEGA25. BEGIN:MOV DS,SEGA27. MOV AL,DAX29. CMP AL, DAY33. JA XGY35. JZ ZERO课程名称: 汇编语言程序设计
5 / 840. MOV AL,DAY43. XGY: MOV MAX,AL47. ZERO MOV AL,4CH49. INT 2150. CSEG END56. END START五、简答题:用尽可能少的指令编写完成下列功能的程序段1. 已知 DX 和 AX 联合存放一个 32 位整数(DX 存放高 16 位),将该数据逻辑左移一位。2.将 AL 中的字符配成奇校验码。3.已知中断服务程序的入口地址为 SEVER,对应的中断方式码为 10H,写出将其入口地址写入中断向量表的程序段。4. 已知 AL,BL 中各存放一个字节数据,如果两数同为偶数,则将 AL 清 0;如果两数同为奇数,则将 AL 置 2;否则将 AL 置 1。六、程序设计题。 已知一组带符号字节数据存放在内存 DATA 开始的连续单元中,数据个数在 CNT 单元存放。编制程序求出该组数据的平均值,并将其存入 AVE 单元。汇编语言程序设计复习题参考答案一、B C C D A A D C D A二、×√××××√××√三、1.指 令 有效地址 实际地址课程名称: 汇编语言程序设计
6 / 8MOV AL,CS:[SI+100H]400H 30400HMOV AL,[BP+200H]400H 20400HMOV [BX+SI-100H],AL300H 10300H2. DATA1 DATA2E0H 58H 59H E0H FFH 59H 58H3. 2597HFD58H4. SBB [SI], ALINC SIINC DI四、(1)4 行应将 DAX:改为 DAX(2)8 行应将 DB 改为 DW(3)12 行改为 MAX DW 0(4)在第 25 行和第 29 行之间应插入如下语句: START: MOV AX,SEGA MOV DS,AXMOV AX,DAX(5)29 行 DAX 改为 DAY(6)33 行 JG 改为 JA(7)43 行 ZERO 改为 ZERO:(8)50 行改为 CSEG ENDS五、课程名称: 汇编语言程序设计
7 / 81.SHR DX,1RCR AX,12. AND AL, ALJPO LOR AL,80H3. XOR AX,AXMOV ES,AXMOV DI,10H*4CLDMOV AX,OFFSET SERVERSTOSWMOV AX,SEG SEREVRSTOSW4.AND AL, 01HAND BL, 01HADD AL, BL六、程序如下:DSEG SEGMENTDATA DB 10,20,-50,30,80,-98,-69,100,35,67CNT DW 10AVE DB ?DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS: DSEGSTART: MOV AX, DSEGMOV DS, AXLEA SI, DATAXOR DX, DXMOV CX, CNTAGAIN: MOV AL, [SI]CBWADD DX, AXINC SILOOP AGAINMOV AX, DX课程名称: 汇编语言程序设计
8 / 8MOV CX, CNTIDIV CLMOV AVE, ALMOV AH, 4CHINT 21HCSEG ENDSEND START课程名称: 汇编语言程序设计