汇编 (2)

  • 格式:doc
  • 大小:59.50 KB
  • 文档页数:7

一、单项选择题(每小题有四个备选答案,从中选出一个正确的答案填在题干的括号内)(20分) A. 基址变址寻址 B. 寄存器间接寻址 C. 变址寻址 D. 基址寻址 2. 确定下列哪些数据在汇编语言中的表示是不正确的( ) A. 19BH+25D B. AL+10 C. 10Q-102Q D. 101B AND 0ABH 3. 若栈顶的物理地址为20100H ,当执行完指令CALL DWORD PTR [BX]后,栈顶的物理地址为 ( ) A. 200FCH B. 20OFDH C. 200FFH D. 200FEH 4. 当执行完下列指令序列后,标志位CF 和OF 的值为( ) MOV AH ,55H ADD AH ,32H A. 0,0 B. 0,1 C. 1,0 D. 1,1 5. NEXT 是程序中某指令语句标号,下述哪个程序段不能实现转移到NEXT 语句执行( ) A. JMP NEXT B. MOV BX ,OFFSET NEXT C. DATA DW NEXT D. LEA AX ,NEXT JMP DATA JMP AX 6. 已知AL ,BX 中各存放一个带符号数,计算AL*BX 的积,用下述程序段( )。

A. MUL BX B. IMUL BX C. XOR AH ,AH D. CBW IMUL BX IMUL BX 7. 若SP=100H ,当执行完指令INT 21H 后,SP 的值为( )。

A. 0096H
B. 0094H
C. 00FCH
D. 00FAH
8. DATA 的定义如下:
DATA DW 1234H
现想把12H 取入到AL 寄存器,可以实现该功能的程序段是( )
A. MOV AL ,BYTE PTR DATA
B. MOV AL ,HIGH DATA
C. MOV AL ,BYTE PTR DATA+1
D. MOV AX ,DATA
9. 初始化8259A 时,ICW2的值为15H ,当IR7端有中断请求时,8259A 送 装

线 以
内 禁

答 题 ○




线

出的中断类型码为()
A. 17H
B. 1CH
C. 15H
D. 10H
10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR2上,则主8259A和从8259A的ICW3应设置为()
A. 02H,02H
B. 04H,04H
C. 02H,04H
D. 04H,02H
二、填空题:(24分)
1.写出下述数据定义伪指令语句经过汇编后,内存单元的分配情况。

(4分)DATA1 DB -32,‘CD’
DATA2 DW -32,‘CD’
2.已知下面一段信息是用DEBUG命令显示的结果,从中可知中断方式码14H 对应的中断服务程序入口偏移地址为______,段地址为______。

(4分)C>DEBUG
-d 0:0
0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 F0
0000: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 12 34 56 78 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
3. 下面一段信息是用DEBUG命令的结果,填充空白处的内容:(8分)
C>DEBUG EXAM.EXE
-U
1A94:0000 B8931A MOV AX,1A93
1A94:0003 8ED8 MOV DS,AX
1A94:0005 A10000 MOV AX,[000F]
1A94:0008 8B1E0200 MOV BX,[0011]
1A94:000C 03C3 ADD AX,BX
1A94:000E 7002 JO 0012
1A94:0010 2BC3 SUB AX,BX
1A94:0012 A30400 MOV [0013],AX
1A94:0015 F4 HLT
1A94:0017 B88665 MOV AX,6586 1A94:001A 50 PUSH AX 1A94:001B B8F463 MOV AX,63F4 1A94:001E 50 PUSH AX 1A94:001F B84320 MOV AX,2043 1A94:0022 7002 JO 0012 -R AX=0000 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1A95 ES=1A83 SS=1A93 CS=1A94 IP=0005 -G 10 12 AX=( ) IP=( ) OF=( ) SF=( ) 4. 依据下述子程序说明文件把子程序补充完整。

(8分) (1)子程序名:MROL (2)子程序功能:多字节数据不带进位循环左移一位 (3)入口条件:数据的最低字节的地址在SI 中,数据长度在CL 中 (4)出口条件:移后数据的最低字节的地址在SI 中 (5)受影响的寄存器:F MROL PROC NEAR PUSH SI PUSH CX CLC AGAIN :( ) ( ) DEC CL JNZ AGAIN POP CX POP SI ( ) ( ) MROL ENDP
三、改错题(10分)
下面的程序从一组带符号字节数据中求出最小值,存放在MIN 单元,已知数据存放在DATA 开始的连续单元,数据个数存放在CNT 单元。

但程序有错(语法错和逻辑错),将错误找出并改正过来。

1. DSEG SEGMENT
5. DATA: DB 10H,20H,30,08H,69H,A0H
10. CNT DB 6
15. DSEG ENDS 装

线






○ 装 ○


线

25. ASSUME CS:CSEG;DS:DSEG
30. BEGIN: MOV DS,DSEG
35. LEA SI,DATA
40. MOV CX,CNT
45. MOV AL,[SI]
50. DEL CX
60. JZ LMIN
65. INC SI
70. CMP AL,[SI]
72. JG MIN1
75. MOV AL,[SI]
80. JMP MIN1
85. LMIN MOV MIN,AL
90. MOV AX,4CH
92. INT 21H
94. CSEG ENDS
96. END START
四、简答题:用尽量少的指令实现完成下列功能的程序段。

(30分)
1. 将寄存器AL的第i位状态写入到BL的第i位上,BL的其它位状态不允许改变,已知i值在CL中。

2. 将DX,AX中存放的一个32位的双字数据带进位循环右移1位,已知DX 中存放的是双字数据的高16位。

3. 已知AL ,BL 中各存放一个带符号字节数据,若两者同为正数,则将AH 清0;若两者同为负数,则将AH 置1;否则AH 置全1。

4. 如果AL 的第6、7位状态与AH 的第i 、i+1位状态相同,则将CF 清0;否则将CF 置1。

已知i 值在CL 中。



线






○ 装 ○ 订

线

5. 用数据串操作指令编写在DATA数组中查找元素10H的程序段,已知数组中元素为字节类型,个数在CX中存放。

6. 已知初始化8259A时,ICW2=13H,某设备的中断请求连接在8259A的IR4端,中断服务程序入口地址为SERVE,写出将中断服务程序的入口地址写入中断向量表的程序段。

五、(16分)程序设计题
要求:先写出解题思路,再写出程序。

已知一文本存放于内存TEXT开始的连续单元中,文件以Ctrl-Z结束。

编制程序在TEXT文本中查找字母M出现的次数,并存放于COUNT单元。

(已知Ctrl-Z的ASCII码为1AH)。

装订线以内禁止答题○装○订○线○。