汇编语言基础试题(4)

2018-12-20 10:29

2.执行下列程序: MOV AX,0C100H MOV BX,8FC0H SUB AX,BX JNC L1 JNO L2

JMP SHORT L3 程序执行后,(AX)=( ),程序转向_________________ 答:(AX)=(3140H),L1

四、程序填空(共10分,每题5分)

1.设AX,BX。CX中的数是数带符号,下列程序求AX.BX.CX中的最小值,结果在AX中.请将程序填写完整。

CMP AX,BX

(1)_________________ XCHG AX,BX NEXT:CMP CX,AX

(2)___________________ XCHG AX,CX EXIT: 答:(1)JLE NEXT (2)JGE EXIT

2.下列程序测试DL寄存器D6和D2位。若同时为0,转ZERO,置AX为0,否则转NON_ZERO,置AX为1。

TEST DL,(1)_________________ JZ ZERO

NO ZERO:MOV AX,1 (2)___________________ ZERO:MOV AX,0 EXIT: 答:(1)01000100B (2)JMP NEXT

五、用分支结构完成下列程序:(20分)

在给定个数的数中寻找最大值,放至指定的存储单元。 参考程序:

DATA SEGMENT

BUFFER DB 2,4,3,6,1,5 COUNT DW 6 MAX DB ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX, DATA

16

MOV DS, AX

MOV CX, COUNT LEA BX, BUFFER MOV AX, [BX] INC BX DEC CX

AGAIN: CMP AX, [BX] JGE NEXT MOV AX, [BX] INC BX NEXT: INC BX

LOOP AGAIN CODE ENDS END START 六、编程序:(25分)

已知ARRAY DW 1200,-69H,798AH,???432BH;共10项 编程统计正数项个数存入PLUS单元中。 要求:程序完整,可上机调试 参考程序:

DATA SEGMENT

ARRAY DW 1200,-69H,798AH,~~~432BH PLUS DB ? DATA SEGMENT CODE SEGMENT

ASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA MOV DS,AX MOV CX,10 MOV DL,0

LEA SI,ARRAY NEXT: CMP [SI],0 JL P1 INC DL ADD SI,2 LOOP NEXT JMP EXIT P1: ADD SI,2 LOOP NEXT

EXIT: MOV PLUS,DL MOV AH,4CH INT 21H CODE ENDS

END BEGIN

17

第十章 字符串操作

一、单项选择题(共30分,每题6分)

1.在MOVB指令中,其目的串的物理地址为(D)

A.DS*2*2*2*2+SI B.DS*2*2*2*2+DI C.ES*2*2*2*2+SI D.ES*2*2*2*2+DI

2.在串指令REP MOVSB中,重复次数一定放在(C)寄存器中。 A.AX B.BX C.CX D.DX

3.下面指令中,合理而有意义的指令是(D) A.REP LODSB B.REP SCASB C.REP CMPSB D.REP MOVSB

4.串操作指令中,目标串操作数的段地址一定在(D)寄存器中。 A.CS B.SS C.DS D.ES

5.在程序状态字寄存器中,当方向标志DF位为0时,每次操作后使变址寄存器SI和DI(B) A.减量 B.增量 C.保持不变 D.地址减1

二、判断题(正确的画,错误的画)(共10分,每题5分) 1.所有串操作指令的目标串的段地址均取自于段寄存器DS。(×) 2.串操作指令一般用CX存放长度。(√)

三、程序填空题(10分) 现有下列数据段: DATA SEGMENT

S1 DB ‘ABCDEFGHIJKL’ COUNT EQU $-S1

BUF DB COUNT DUP(0) DATA ENDS

下面程序段是实现把S1中所有字符逆向传送到BUF缓冲区(即S1中第一个字符送到BUF的最后一个单元,S1中最后一个字符送到BUF的第一个单元)。试把程序中所空缺的2条指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT

(1)________________ L1: MOVSB

(2)________________ LOOP L1 参考答案: (1)CLD

(2)SUB SI,2 或

(1)STD

18

(2)ADD DI,2

四、编程序题(共50分,第1题20分,第2题30分)

1.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。(要求用字符串指令) 参考答案:

DATA SEGMENT

PATTERN DB 23H,24H,25H,26H DISPLAY DB 80 DUP(‘ ’),‘$’ DATE ENDS

CODE SEGMENT ┇ CLD

LEA SI,PATTERN LEA DI,DISPLAY MOV CX,80 REP MOVSB MOV AH,09H

LEA DX,DISPLAY INT 21H RET CODE ENDS

2.内存自BUF单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把结果连续存放到自RESUT开始的单元中,(要求用字符串指令,各段定义完整) 参考答案:

DATA SEGMENT

BUF DB 40H,64H,51H? RESUT DB 3 DUP(0) DATA ENDS

STACK SEGMENT STACK DB 100 DUP(0) STACK ENDS CODE SEGMENT

ASSUME DS∶DATA,ES∶DATA,SS∶STACK,CS∶CODE START PROC FAR PUSH DS MOV AX,0 PUSH AX

MOV AX,DATA MOV DS,AX MOV ES,AX

MOV、AX,STACK

19

MOV SS,AX LEA SI,BUF MOV CX,100 CLD AO:LODSB

CMP AL,5AH JL L60

INC [RESUT] JMP COM

L60: CMP AL,3CH JGE K8960

INC [RESUT+1] JMP COM

K8960: INC [RESUT+2] COM: LOOP AO RET START ENDP CODE ENDS END START

第十一章 循环程序

一、单项选择题(共10分,每题5分)

1.循环指令LOOP AGAIN终止循环的条件是(C) A.(AX)=0 B.(BX)=0 C.(CX)=0 D.(DX)=0 2.循环指令LOOP NZ终止循环的条件是(B)。 A.CX=0,且ZF=0 B.CX=0,或ZF=1 C.CX≠0,且ZF=0 D.CX≠0,或ZF=1

二、程序分析题(10分) DATA SEGMENT

S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS ┆

LEA SI,S9

LEA, DI,S9+1 MOV CX,5

LOP: MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP

上述程序段运行后,S9开始的10个字节存储单元内容是什么?

20


汇编语言基础试题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国人寿保险公司人力资源管理

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

马上注册会员

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