test9华农汇编期末试卷(有答案版) -

更新时间:2023-10-21 04:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、阅读程序

1.仔细阅读下面程序,说明该程序的功能。

CODE SEGMENT ORG 100H ASSUME CS:CODE,DS:DATA,ES:CODE,SS:CODE SORT PROC NEAR MOV CX,N DEC CX LOOP1: PUSH CX MOV BX,0 LOOP2: MOV AX,ARRAY[BX] CMP AX,ARRAY[BX+2] JLE CONTINUE XCHG AX,ARRAY[BX+2] MOV ARRAY[BX],AX CONTINUE: ADD BX,2 LOOP LOOP2 POP CX LOOP LOOP1 MOV AH,4CH INT 21H ARRAY DW 2,-9,8,0,12,16,1,-10,18,11 N DW ($-ARRAY)/2 SORT ENDP CODE ENDS END SORT 程序功能:

把ARRAY中的数从小到大排序

2.仔细阅读下面程序,说明该程序的功能。

DATA SEGMENT BUFF DB 128,?,128 DUP(?) CRLF DB 0DH,0AH,24H DATA ENDS STACK SEGMENT STACK DW 100H DUP(?) TOP LABEL WORD STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:DATA MAIN PROC FAR MOV AX,STACK MOV SS,AX LEA SP,TOP PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX

1

NEXT: MAIN CODE

程序功能:

LEA MOV INT MOV LEA INT LEA INC MOV XOR ADD STD LODSB MOV MOV INT LOOP RET ENDP ENDS END

DX,BUFF AH,0AH 21H AH,9

DX,CRLF 21H

SI,BUFF SI

CL,[SI] CH,CH SI,CX

DL,AL AH,2 21H NEXT

MAIN

从键盘输入一段字符串,然后再下一行逆序输出

3. 仔细阅读下面程序,说明该程序的功能。 CODE SEGMENT ORG 100H ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE P22 PROC NEAR MOV CX,N LEA SI,NUM LP1: NOT BYTE PTR[SI] INC SI LOOP LP1 MOV CX,N LEA SI,NUM STC LP2: ADC BYTE PTR[SI],0 INC SI LOOP LP2 MOV AH,4CH INT 21H NUM DB 12H,34H,56H,78H,9AH,0BCH,23H,45H DB 67H,89H,0DEH,13H,24H,35H,46H,57H N EQU $-NUM P22 ENDP CODE ENDS END P22

2

程序功能:

把NUM中的数全部求补

4.下面是某程序的汇编列表文件,请将程序执行过程中堆栈最满时每个单元的内容填入下表。假设程序执行时PSP(PROGRAM SEGMENT PREFIX)段地址为13CBH,STACK段的段地址为13DBH,CODE1段的段地址为13DFH,CODE2的段地址为13E1H。

地 址 机器码 汇编语言指令

0000 STACK SEGMENT 0000 0020[????] DW STACK

20H DUP(?) 0040 TOP 0040 STACK 0000 CODE1 0000 P1 0000 B8 ---- R 0003 8E D0 0005 BC 0040 R 0008 1E 0009 33 C0 000B 50 000C 9A 0000 ---- R CALL 0011 B8 0001 0014 CB 0015 P1 0015 P2 0015 B8 0002 0018 CB 0019 P2 0019 CODE1 0000 CODE2 0000 P3 0000 E8 0007 R 0003 B8 0003 0006 CB 0007 P3 0007 P4 0007 9A 0015 ---- R 000C B8 0004 000F C3 0010 P4 0010 CODE2 偏移地址 栈内容 ( ) ( ) ( )

LABEL ENDS SEGMENT ASSUME PROC MOV MOV MOV PUSH XOR PUSH FAR MOV RETF ENDP PROC MOV RETF ENDP ENDS SEGMENT ASSUME PROC CALL MOV RETF ENDP PROC CALL MOV RET ENDP ENDS END 3

WORD

CS:CODE1,SS:STACK FAR

AX,STACK SS,AX

SP,OFFSET TOP DS AX,AX AX

PTR P3 AX,1

FAR AX,2

CS:CODE2 FAR P4 AX,3

NEAR

FAR PTR P2 AX,4

P1

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (003AH) ( 003BH) ( 003CH) ( 003DH) ( 003EH) (003FH )

SP

二、程序填空题

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

CODE MAIN

SEGMENT ORG ASSUME PROC CALL

100H

CS:CODE,DS:CODE,ES:CODE,SS:CODE NEAR I2 D10 AH,4CH 21H NEAR BX CX DX SI DI BX,BX CX,16 AH,1 21H

CALL MOV INT MAIN I2

ENDP PROC PUSH

PUSH PUSH PUSH PUSH XOR MOV L20:

MOV INT

(CMP AL,0DH )……………①

4

JE CMP JB CMP JA AND SHL ADD

L21 AL,30H L20 AL,31H L20 AX,01H BX,1 BX,AX

( LOOP L20 )……………② L21: MOV POP POP POP POP POP RET I2 ENDP D10 PROC PUSH PUSH PUSH PUSH PUSH PUSH

NEAR AX BX CX DX SI DI AX,BX DI SI DX CX BX

( MOV BX,AX )……………③ MOV LEA INT OR JNS MOV

AH,9 DX,CRLF 21H BX,BX L100 AH,2

mov dl,2dh )……………④ INT NEG L100: MOV XOR MOV

21H BX AX,BX CX,CX SI,10

5

本文来源:https://www.bwwdw.com/article/3kpf.html

Top