1.汇编语言期末复习题(6)

2019-08-20 19:25

答:(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。 (2) AL=77H, BL=9AH 16、阅读程序段: CXFX

BLOCK DB 20H,1FH,08H,81H,OFFH? LOP1:CMP AL,[SI+1] RESULT DB? JNG NEXT ? MOV AL,[SI+1]

START:LEA SI,BLOCK NEXT:INC SI MOV CX,[SI] LOOP LOP1 INC SI MOV RESULT,AL MOV AL,[SI] HLT 请问:(1)该程序完成的功能是什么?(2)该程序循环的次数是多少?

答:(1) 该程序完成的功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。 (2) 该程序的循环次数是1FH(31)。

17、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 CXFX ORG 100H

BLOK DW X1,X2,?,XN COUNT EQU($-BLOLOK)/2 RESULT DW COUNT,? LEA BX,BLOK-2 MOV CX,RESULT XOR AX,AX

GOON:ADD BX,2 CMP AX,[BX] JAE NEXT MOV AX,[BX] NEXT:LOOP GOON MOV RESULT+2,AX

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______ BX=______

程序循环次数=______

答: RESULT+2字存储单元的内容是MAX(X1, X2, ? XN) BX= 100H + 2×(COUNT-1) 程序循环次数= COUNT

18、下面程序的功能是什么? CXFX MOV AX,X CMP AX,Y JGE LAB XCHG AX,Y

LAB:MOV X,AX 答:选择X,Y中的较大值存入X中

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

STRING DB‘COMPUTER’,‘$’ ┇

26

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

_____ INC BX_______________ _____CMP [BX],24H________ JNE LOP

20下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令.CXTK

____ XOR AH,AL_______________ AND AH,08H

_____ JE ZERO______________ MOV AH,OFFH JMP NEXT

ZERO:MOV AH,0 NEXT:??

21、在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格处填入适当指令使其完整。 CXTK

LEA BX,TABLE (2) MOV CX,10 JC END0

MOV SUM,AX DON:INC BX MEXT: (1) (3)

ADC AH,0 ENDO:HLT

JNC DON 答: (1) ADD AL, [BX] (2) MOV AX, SUM (3) LOOP NEXT

22、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 BC 答: BEGIN:MOV AH,1 INT 21H

CMP AL,’a’ JB STOP

CMP AL,’z’ JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP:RET

23、试编制一源程序,统计DA1字单元中含0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。 BC

DATA SEGMENT DA1 DW XXXX DATA ENDS

27

答:

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN: MOV AL,[SI] HL AL,1 JC NEXT INC BL NEXT:INC SI LOOP AGAIN TEST BL,01H JNE L1 CLC

JMP DONE L1: STC

DONE: MOV AH,4CH INT 21H CODE ENDS

END START

24、编定程序段,用DOS的1号功能调用通过键盘输入一字符,并判断输入的字符。如字符是\,则转向YES程序段;如字符是\,则转向NO程序段;如是其他字符,则转向DOS功能调用,重新输入字符。(考生勿需写出源程序格式,只需写出与试题要求有关的指令序列) (YES和NO分别是两程序段入口处的标号) BC

KEY:MOV AH,1 INT 21H

CMP AL,‘Y’ JE YES

CMP AL,‘N’ JE NO JMP KEY 答案:

DATA SEGMENT

BUF1 DW -56,24,54,-1,89,-8,---- BUF2 DW 45,-23,124,345,-265,---- SUM DW 10 DUP(0) DATA ENDS

STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT

28

ASSUME CS:CODE,DS:DATA,SS:STACK1 START:MOV AX,DATA MOV DS,AX MOV CX,10 LEA SI,BUF1 LEA DI,BUF2 LEA BX,SUM

NEXT:MOV AX,[SI] MOV DX,[DI] TEST AX,8000H JE TDX NEG AX

TDX:TEST DX,8000H JE ADDS NEG DX

ADDS:ADD AX,DX MOV [BX],AX ADD SI,2 ADD DI,2 ADD BX,2 LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START 25、

LEA SI,STR MOV AL,ODH XOR CX,CX

GOON:CMP AL,[SI] JZ NEXT INC CX INC SI JMP GOON

NEXT:MOV COUNT,CX

字节变量STR中存放着一个字符串‘abcdefGHIJK’,以0DH为结束标志,上述指令序列完成的功能是 求字符串长度 ,执行以上指令后字变量COUNT= 11 。 CXFX

26、下列程序片段用来分别统计ARRAY数组中奇数和偶数的个数。请在空白处填写合适的指令。 CXTK

DATA SEGMENT

ARRAY DW 23ABH,1570H,567,1765H,46,5210H COUNT EQU ($-ARRAY)/2 DA1 DB ? DA2 DB ?

29

DATA ENDS ??

LEA SI,ARRAY MOV CX,COUNT LOP1:MOV AX,[SI]

TEST AX,0001H JZ LOP2 INC BL JMP LOP3 LOP2:INC BH

LOP3: ADD SI,2 DEC CX JNZ LOP1 MOV DA1,BL MOV DA2,BH

-1 x<0 27、编写计算下面函数值的程序 y= 0 x=0 1 x>0 其中,输入数据x和输出数据y均在数据段中定义,且皆为字节变量。DATA SEGMENT X DB 45H Y DB ?

DATA ENDS ;

CODE SEGMENT

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

MOV DS,AX MOV AL,XXX MOV AH,0 CMP AL,0

JGE NEXT1 MOV BL,-1

JMP OVER NEXT1:CMP AL,0

JE NEXT2 MOV BL,1

JMP OVER NEXT2:MOV BL,0 OVER: MOV ZZZ,BL

MOV AH,4CH INT 21H CODE ENDS

END START

30

BC


1.汇编语言期末复习题(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高中物理机械波习题集打印版

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

马上注册会员

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