汇编语言练习题及习题答案

更新时间:2024-03-24 21:06:01 阅读量: 综合文库 文档下载

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

选择

1、用户为了解决自己的问题,用汇编语言所编写的程序,称为___________。

A 、目标程序 B、源程序 C、可执行程序 D、汇编程序

2、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是___________。

A、ADD BH,01H B、OR BH,01H C、XOR BH,01H D、TEST BH,01H 3、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1,执行SBB AL,[SI]后,正确的结果是___________。

A、AL=5FH SF=1 CF=1 B、AL=60H SF=1 CF=0 C、AL=5FH SF=0 CF=1 D、AL=60H SF=0 CF=0 4、设AX=1000H NEG AX NOT AX

执行上述指令后,正确的结果是___________。

A、AX=1001H B、AX=0FFFH C、AX=1000H D、AX=0111H 5、CBW指令的功能是___________。

A、把源操作数的符号位扩展到目的操作数中 B、把AL中的符号位扩展到AH中 C、把AH中的符号位扩展到AL中 D、把AX中的符号位扩展到DX中

6、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是 A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、指令AND AX,OFH执行后,分离出AL低四位 D、NOT AX,执行后,将AX清0

7、执行下列指令序列后,正确的结果是___________。 MOV AL,81H ADD AL,AL ADC AL,AL

A、AL=05H B、AL=204H C、AL=04H D、AL=205H

4、 TEST DL,55H JE NEXT ….

NEXT:……

上述程序段,执行JE指令时能产生转移的情况是 。 A、DL>55H B、DL<55H C、DL=55H D、DL中第0、2、4、6位均为0

5、设CL=05H,要获得CL=0AH,可选用的指令是 。 A、XOR CL,0FH B、NOT CL C、OR CL,0AH D、AND CL,0FH

填空

2、与指令LEA DI,AV等效的指令是____________。

5、如JMP指令采用段间直接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是________,而后两个字节存放的是________。

6、当主程序和子程序不在同一个代码段时,主程序调用子程序是远调用,这时系统自动将__________和__________值作为断点依次入栈。

7、VAR1 DW 10H DUP(?)语句实现留空___________个字节单元。

2、假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,0FEH,则存放字数据0FE52H的字地址是______________。

3、设CF=1,AX=8000H,执行ROR AX,1后,AX=______________,CF=______________。

三、问答题

1、条件转移指令的判断条件,除标志位PF外还有哪几个标志位? 2、DATl DB 1,2,3,4 DAT2 DW 3412H,5678H ┆

MOV AX,DATl+1;将DATl+1字单元内容送入AX中 MOV BL,DAT2+1;将DAT2+1字节单元内容送入BL中

已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改正)。

3、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如: PUSH AX\\

PUSH BX \\ 保护现场 PUSH CX / PUSH DX/

┆ }恢复现场

试写出恢复现场时的指令序列。 4、完成下列操作,选用什么指令:

(1)将AX的内容,减去0520H及上次运算的借位; (2)将变量名TABL的段基址送AX; 5、指出下面的程序段的错误之处,并改正。

CRAY PROC PUSH AX ADD AX,BX RET CRAY ENDP

四、程序填空题

1、在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在横线处各填上一条指令完善该程序。

MOV AX, NUMW _____________ XOR DX, DX

DIV BX

MOV QUI, AX _____________

2、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在横线处填上适当的一条指令。

STRING DB‘COMPUTER’,‘$’ ┇

MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,02H INT 21H

_______________ _______________ JNE LOP 3、下面程序段是判AL和BL中的数据是否同号,若是,则把AL中的数据求补并送到AH中,否则0→AH。横线处填入适当指令(每处仅填一条指令)。

____________ JNS K MOV AH,0 JMP END0

K:____________ MOV AH,AL END0:……

4、从2000H单元开始,存放着14H个无符号字节数据,找出最大一个,并将其存在2000H中。请在横线处各填一条指令。

GATMAX:MOV BX,2000H

MOV AL,[BX] MOV CX,14H P1:____________

CMP AL,[BX] JAE P2

MOV AL,[BX]

P2: ____________

JNZ P1

MOV BX,2000H MOV [BX],AL …

五、读程序,写出程序的功能和运行结果

1、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么? MOV CX,10 LEA BX,BUF K2: MOV AL,[BX]

CMP AL,‘Z’ JBE K1 SUB AL,20H MOV [BX],AL K1: INC BX LOOP K2 K3: ┇

①上述子程序的功能是_____________。 ②执行到K3时,BX=____ ________。

2、 .MODEL SMALL .DATA X DW 1, 2, 3, 4, 5, 6 Y DW 0 .CODE

START: MOV AX,@DATA MOV DS, AX MOV CX, 6 MOV SI, 0 ONE: MOV AX, X[SI] MOV BX, CX MOV DX, Y CALL PROC1 MOV Y, DX ADD SI, 2 LOOP ONE MOV AX, 4C00H INT 21H PROC1 PROC TEST BX, 1 JZ P1 NEG AX P1: ADD DX, AX RET

PROC1 ENDP END START

(1) 写出程序所实现的功能 。 (2) 写出程序执行后Y的值 。 2、若48H和93H是无符号数。 SOUR DB 48H,93H MZ DB ? ……

MOV AL,SOUR CMP AL,SOUR+1

JA K1

MOV AL,SOUR+1

K1: MOV MZ,AL 试问:(1)MZ单元内容是什么?

(2)48H和93H是有符号数,JA K1指令应改为什么指令?此时MZ的值是多少?

六、完整编程题

1、按下列要求编写一个子程序:(5分) 子程序名:ABSOLT

功能:求两数的绝对值之和

输入参数:AX存放一个加数,BX存放另一个加数 输出参数:AX存放和

2、已经有FINDMAX子程序如下,其功能是找出字数组中的最大值存放在AX中。现在ARRAY开始的字数组中存放了100个带符号数,请利用FINDMAX,找出其中最大的数,存放到MAX单元中去。编写完整的程序。(10分)

FINDMAX PROC MOV AX, [SI] NEXT: CMP AX, [SI+2] JG SKIP MOV AX, [SI+2] SKIP: ADD SI, 2 LOOP NEXT RET

FINDMAX ENDP

答案

一、选择题 BBCBB CADA 二、填空题

2、mov di, offset av 5、偏移地址 段基址 6、cs ip 7、20h

2. 7464h 3 ax=4000h,cf=0 三、问答题

1、cf zf sf of

2、mov ax, word ptr dat1+1 mov bl, byte ptr dat2+1 3、pop dx pop cx pop bx pop ax 4、sbb ax, 0520h mov ax, seg tabl 5、在ret前加pop ax 四、程序填空题

1、mov bx, 500 mov rem, dx 2、inc bx cmp *bx+, ‘$’ 3、xor bl, al neg al 4、inc bx dec cx

五、读程序,写出程序的功能和运行结果

1、小写字母转为大写字母 bx=buf+10 2、1-2+3-4+5-6 y= -3 3、93h, jg k1, 48h 六、完整编程题 1、 ABSOLT PROC CMP AX,0 JG PASS NEG AX PASS: CMP BX,0 JG PASS1 NEG BX PASS1: ADD AX,BX RET ABSOLT ENDP 2、

DATA SEGMENT ARRAY DW 100 DUP(?) MAX DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DATA:DS START: MOV AX,DATA MOV DS,AX MOV CX,99 LEA SI,ARRAY CALL FINDMAX MOV MAX,AX MOV AX,4C00H INT 21H CODE ENDS END START

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

Top