2015年6月汇编语言程序设计-试题库(给学生复习)(5)

2019-06-11 13:23

B: JMP BYE: ……

A

试说明该程序段完成的功能。

该程序段完成的功能是统计AX中1的个数。 27、试分析下面的程序段完成什么功能?

MOV CL,04

SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL

程序功能:将(DX)(AX)中双字内容左移4位。 28、DA1 DB ?01234?

DA2 DB 5DUP(0) MOV SI,0 MOV CX,5

LOP:MOV AL,DA1[SI]

ADD AL,11H OR AL,01H

MOV DA2 [SI],AL INC SI LOOP LOP

1) 程序执行完后,写出DA2各字节的数据。

2) 程序中MOV AL,DA1[SI]指令的操作数是什么寻址方式? 1)41H,43H,43H,45H,45H;2)寄存器相对寻址

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

PUSH AX

PUSH BX ;保护现场 PUSH CX PUSH DX ……

;恢复现场

试写出恢复现场时的指令序列。 POP DX POP CX POP BX POP AX

30、指出下列指令源操作数的寻址方式: MOV AX,ES:[BX] 寄存器间接寻址方式 MOV AX,20[BX+SI] 相对基址变址寻址方式 MOV AX,ARRAY 直接寻址方式 MOV AX,[BX+DI] 基址变址寻址方式 MOV AX,1200H 立即寻址方式

程序填空题

1、下述程序段完成计算2~20之间的偶数的和,并将结果存于AX中,试把空白处填上适当的指令(每一空白只填一条指令) XOR AX,AX MOV BX,0 MOV CX,11 CONT:ADD AX,BX ADD BX,2 LOOP CONT

(第一空MOV CX,11,第二空ADD BX,2) 2、下面程序段判断A单元的有符号数,并根据其值小于0,等于0,大于0,分别将0FFH,00H,01H送入B单元中。在空白处填上适当的指令(每一空白处只填一条指令) MOV AL,A CMP AL,0 JLE AA

MOV B,1

JMP DONE AA: JL BB MOV B,0 JMP DONE BB: MOV B,0FFH DONE:HLT

(第一空JLE AA,第二空JMP DONE)

3、下列程序段的功能是把0~9的数据转换为相应的ASCII码。请在每个空白处填上一条指令。 DAT DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ASC DB 10 DUP(?) COUN=ASC-DAT LEA SI,DAT

LEA DI,ASC MOV CX,10 LOP:MOV AL,[SI]

ADD AL,30H MOV [DI],AL INC SI INC DI LOOP LOP HLT

(第一空MOV CX,10,第二空 ADD AL,30H或OR AL,30H)

4、下面程序完成将0100H开始的100个字节数据搬移到从0180H开始的存储单元中,设DS、ES已设置好且其值相等。在每个空白处填上一条适当的指令。

MOV SI,0100H MOV DI,0180H MOV CX,100 CLD

REP MOVSB

(参考答案MOV CX,100、REP MOVSB)

5、设字符串的段地址、偏移地址和长度已经分别存于DS、SI和CX中,要统计其中字符“P”的个数,并存于DL中。试把空白处填上适当的指令(每一空白只填一条指令) MOV AL,?P? MOV DL,0 NEXT:CMP AL,[SI] JNZ/JNE CONT INC DL CONT:INC SI LOOP NEXT (第一空JNZ/JNE CONT,第二空 LOOP NEXT)

6、某程序段要用单个字符显示的2号DOS功能调用去显示一字符串“STRING”。试在下面空白处填上适当的指令

STR1 DB ‘STRING’,’$’ ?? ?? ??

MOV BX,OFFSET STR1 LOP:MOV DL,[BX] MOV AH,02H INT 21H INC BX

__ CMP [BX],‘$’ JNE LOP

(第一空 INC BX,第二空 CMP [BX],‘$’)

7、在以BLOCK为首地址的数据区存放了一组带符号数,下面程序的功能将该数据中所有的负数累加起来,然后再求其绝对值,并送入SUM单元。试在程序中填补上空缺的指令。

DATA DB 60,70,-28,-99,-100,-25,?,97 SUM DW ?

MOV CX,SUM-DATA XOR DX,DX

MOV BX,OFFSET DATA LOP: MOV AL,[BX] TEST AL,80H JZ NEXT CBW

ADD DX,AX NEXT:INC BX

LOOP LOP

NEG DX MOV SUM,DX

(第一空 JZ NEXT,第二空 NEG DX)

8、在以ARRAY为首地址的数据区存放了一组带符号数,下面程序的功能将该数据中所有的负数送入ARRAY1数据区,其余送入ARRAY2中。试在程序中填补上空缺的指令

ARRAY DB 25,63,-103,2,75,75,-1,-65,?,100 N EQU $-ARRAY ARRAY1 DB N DUP(?) ARRAY2 DB N DUP(?) ??

MOV CX,N MOV BX,0 MOV SI,0 MOV DI,0

LOP: MOV AL,ARRAY[BX] CMP AL,0 JAE NEXT1

MOV ARRAY1[SI],AL INC SI JMP NEXT2

NEXT1:MOV ARRAY2[DI],AL INC DI NEXT2:INC BX LOOP LOP

(第一空 MOV ARRAY1[SI],AL; 第二空 MOV ARRAY2[DI],AL)

9、下述程序段完成计算1+2+?+10的和,并将结果存于AX中,试把空白处填上适当的指令(每一空白只填一条指令) XOR AX,AX MOV BX,0 MOV CX,11 CONT:ADD AX,BX INC BX LOOP CONT

参考:MOV CX,11;LOOP CONT

10、下述程序段完成计算2~20之间的偶数的和,并将结果存于AX中,试把空白处填上适当的指令(每一空白只填一条指令)

XOR AX,AX MOV BX,0 MOV CX,11 CONT:ADD AX,BX

ADD BX,2 LOOP CONT

MOV CX,11;ADD BX,2

11、下列程序段的功能是把0~9的数据转换为相应的ASCII码。请在每个空白处填上一条指令。

DAT DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ASC DB 10 DUP(?) CON=ASC-DAT LEA SI,DAT

LEA DI,ASC

MOV CX,CON LOP:MOV AL,[SI] ADD AL,30H

MOV [DI],AL INC SI INC DI LOOP LOP HLT

MOV CX,CON;ADD AL,30H或OR AL,30H

12、某程序段要用单个字符显示的2号DOS功能调用去显示一字符串“STRING”。试在下面空白处填上适当的指令

STR1 DB ‘STRING’,’$’ ?? ?? ??

MOV BX,OFFSET STR1 LOP:MOV DL,[BX] MOV AH,02H INT 21H (1)

(2)

JNE LOP (1)INC BX (2)CMP BX,?$? 13、设字符串的段地址、偏移地址和长度已分别存于DS、SI和CX中,要统计其中字符“P”的个数,并存于DL中。试把空白处填上适当的指令。

MOV AL,‘P’ MOV DL,0 NEXT:CMP AL,[SI] JNE CONT INC DL CONT:INC SI LOOP NEXT 1)JNE CONT或JNZ CONT;2)LOOP NEXT

14、下面程序段完成用串指令在DA1开始的26个字节单元中依次存放A-Z的ASCII码,在DA2开始的26个字节单元中依次存放Z-A的ASCII码,请在横线处各填一条指令。 DA1 DB 26 DUP(?)


2015年6月汇编语言程序设计-试题库(给学生复习)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:集体备课因式分解法求解一元二次方程说课稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: