test10华农汇编期末试卷(有答案版) 下载本文

内容发布更新时间 : 2024/12/23 3:07:06星期一 下面是文章的全部内容请认真阅读。

一、简答题

1. 在调试程序DEBUG提示符 “-”下,输入命令R,显示结果为:

AX=1234 BX=0100 CX=1357 DX=2468 SP=0110 BP=0120 SI=0002 DI=0130 DS=1000 ES=1010 SS=1100 CS=2000 IP=0120 NV UP EI PL NZ NA PO NC 输入d 1000:0,显示结果为:

1000:0000 40 27 AA C3 E8 AD FE 3C-0A 75 E0 C3 BB 67 48 E8 @'.....<.u...gH. 1000:0010 E1 03 E8 AD 03 B0 2C AA-E8 99 FE 98 8B D0 8A E0 ......,......... 1000:0020 B0 2B 0A E4 79 04 B0 2D-F6 DC AA 8A C4 EB BC E8 .+..y..-........ 1000:0030 48 00 B0 2C AA A0 A8 56-BE 84 3C 80 3E A6 56 01 H..,...V..<.>.V. 输入d 1000:100,显示结果为:

1000:0100 75 03 BE 94 3C 98 03 F0-03 F0 A5 C3 D0 E8 D0 E8 u...<........... 1000:0110 D0 E8 24 03 BE A4 3C EB-EC 24 07 EB E5 C6 06 A6 ..$...<..$...... 1000:0120 56 01 E8 15 00 B0 2C AA-A0 A8 56 EB E5 E8 0D FF V.....,...V..... 1000:0130 E8 DF FF C6 06 A6 56 01-EB 10 E8 00 FF EB 0E C6 ......V......... 输入d 1100:0,显示结果为:

1100:0000 AA E8 D8 FE EB EE 8B 1E-0B 4A B8 42 58 EB BC 03 .........J.BX... 1100:0010 1E 15 4A B8 53 49 EB CD-E8 99 FD 98 03 06 83 56 ..J.SI.........V 1100:0020 92 8A C6 E8 C5 FE 8A C2-E9 C0 FE E8 86 FD 8A D0 ................ 1100:0030 E8 81 FD 8A F0 03 16 83-56 EB E6 24 07 E8 02 FF ........V..$.... 输入d 1100:100,显示结果为:

1100:0100 B0 2C A3 32 C0 E9 FA FE-32 C0 E8 EB FE B0 2C A5 .,.2....2.....,. 1100:0110 B7 5B AA 33 DB C6 06 AA-56 03 EB A5 E8 F1 FF B0 .[.3....V....... 1100:0120 2C AA 32 C0 E9 D1 FE C6-06 A6 56 00 EB 05 C6 06 ,.2.......V..... 1100:0130 A6 56 01 24 07 E9 39 FE-C6 05 33 47 C3 E8 A3 01 .V.$..9...3G.... 试说明下列各指令执行完后AX寄存器的内容。

指令 AX的内容(十六进制) ① POP AX ① ② MOV AX,BX ② ③ MOV AX,[BP][SI] ③ ④ MOV AX,[DI] ④ ⑤ MOV AX,[BX+10H] ⑤ ⑥ MOV AX,[BX][SI] ⑥ ⑦ MOV AX,[BX+SI+10H] ⑦ ⑧ MOV AX,[BP]  ⑧ 2. 下面程序完成什么功能?(对寄存器AX、DX的值发生何种变化) MOV CX,5 NEXT: SHL AX,1 RCL DX,1

ADC

AX,0

LOOP NEXT

实现32位数的循环移位,将(DX,AX)的前5位移到后面 3. 数据段有变量定义语句: NUM DB 130

ANS

DB

210

1

现要计算NUM÷7,并将商保存在ANS中。有学生编写下面程序段,请仔细阅读,如果发现有错误,将其改正过来,如果认为没有错误,请注明“无错误”。(假设段寄存器DS存储数据段的段地址)

MOV DIV MOV

AX,NUM 7 ANS,AL

有错,应该为:

mov AX,NUM mov bl,7 div bl mov ANS,AL

4. 不使用串指令,写出实现下列程序段相同功能的程序段。

MOV MOV LEA LEA MOV CLD

REPE CMPSB

JCXZ L2 L3: ┆

mov ax,DATA mov ds,ax mov es,ax lea si,X lea di,Y mov cx,100H L:

mov ax,[si] mov bx,[di] inc si inc di cmp ax,bx jne L0 loop L

AX,DATA ES,AX SI,X DI,Y CX,100H

MOV DS,AX

二、程序填空题

下面程序输入16位以内的二进制数(输入时回车作为输入结束),然后以有符号十进制数形式显示出来。将空格处指令补充完整,使得程序能完整实现所需要的功能。

CODE MAIN

SEGMENT ORG 100H

ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE PROC NEAR

2

CALL I2 CALL D10 (MOV AH,4CH)?????① INT 21H MAIN ENDP I2 PROC NEAR PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI XOR BX,BX MOV CX,16 L20: MOV AH,1 INT 21H

(CMP AL,0DH )?????② JE L21 CMP AL,30H JB L20 CMP AL,31H JA L20 AND AX,01H SHL BX,1 ADD BX,AX

(LOOP L20 )?????③ L21: MOV AX,BX POP DI POP SI POP DX POP CX

(POP BX )?????④ RET I2 ENDP

D10 PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI

(mov bx,ax )?????⑤ MOV AH,9 LEA DX,CRLF INT 21H OR BX,BX JNS L100 MOV AH,2

(mov dl,2dh )?????⑥

3