好文档 - 专业文书写作范文服务资料分享网站

汇编语言期末复习题大全(免费) 

天下 分享 时间: 加入收藏 我要投稿 点赞

STACK1 ENDS

CODE SEGMENT

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

21

DA1 DB ? DA2 DB ? 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

22

BC CODE ENDS

END START

28、写一个把字符串中的大写字母改写为小写字母的子程序(近过程)。设字符串以0为结束标志。 BC

;子程序名:STRLWR ;功 能:把字符串中的所有大写字母改写为小写字母

;入口参数:DS∶BX=存放改写所需字符串的缓冲区首地址 ;出口参数:无 STRLWR PROC PUSH AX

PUSH SI MOV SI,BX AGAIN: MOV AL,[SI] OR AL,AL

JZ OK CMP AL,’A’ JB NEXT CMP AL,’Z’

JA NEXT

OR AL,20H(或者ADD AL,30H) MOV [SI],AL NEXT: INC SI JMP AGAIN OK: POP SI

POP AX RET STRLWR ENDP

第6章:循环程序设计

1、循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是(CX≠0且ZF=0) DX

2、循环指令LOOPNZ终止循环的条件是( CX=0,或ZF=1 )。 DX

3、检查BUF的内容是否为正偶数,如是正偶数,则0TAL。下面程序段正确的是( C )DX

A、MOV AL,BUF B、MOV AL,BUF JS K1 AND AL,11 SHR AL,1 JNZ K2 JNC K1 MOV AL,0 MOV AL,0 K2:??

K1:??

23

C、MOV AL,BUF TEST AL,81H JNZ K3 MOV AL,0 K3:??

D、MOV AL,BUF JNP K4 TEST AL,80H JNZ K4 MOV AL,0 K4):…… 4、下列描述中,执行循环的次数最多的情况是( A 。 DX A.MOV CX,0 B.MOV CX,1

LOP:LOOP LOP LOP:LOOP LOP C.MOV CX,0FFFFH D.MOV CX,256 LOP:LOOP LOP LOP:LOOP LOP 5、

DATA SEGMENT

S9 DB0,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个字节存储单元内容是什么? CXFX S9 DB 1,0,3,2,5,4,7,6,9,8

6、实现将DX:AX中存放的32位数扩大四倍,正确的程序段是(③ )。 DX ① SHL AX,2 ROL DX,2 ② RCL AX,2 SHL DX,2 ③ MOV CX,2

LOP:SHL AX,1 RCL DX,1 LOOP LOP ④ SHL AX,1 SHL AX,1 RCL DX,1

RCL DX,1

7、在下列指令中, D 指令的执行会影响条件码中的CF位。 DX A.JMP NEXT B.JC NEXT C.INC BX D.SHL AX,1 8、下列指令执行时出错的是(A)。 DX

A.ADD BUF1,BUF2 B.JMP DWORD PTR DAT [BX] C.MOV AX,[BX+DI] NUM

24

D.TEST AL,08H

9、在下列指令的表示中,不正确的是(C)。 DX

A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 10、在进行二重循环程序设计时,下列描述正确的是(A)。 DX

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内 11、条件转移指令JNE的测试条件为(ZF=0)。 DX 12、执行如下程序: MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A

HLT

执行后(BX)= (101)。 DX 13、上题的程序执行后(AX)= (5050)。 DX 14、对于下列程序段:

AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI

LOOP AGAIN

也可用__ REP MOVSB __指令完成同样的功能。 DX 15、

DA1 DB‘ABCDEFGHI’ DA2 DB 9 DUP(0) ┇

LEA SI,DA1 LEA DI,DA2 MOV CX,9 CLD

LOP: LODSB SUB AL,10H STOSB LOOP LOP . . .

试问:①写出程序执行后DA2各字节中的数据。 CXFX ②保持程序功能情况下,程序中 可否改写为 123456789;不能更改

25

汇编语言期末复习题大全(免费) 

STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVCX,10LEASI,BUF1LEADI,BUF2LEABX,SUMNEXT:MOVAX,[SI]MOVDX,[DI]TESTAX,8000HJETDXNE
推荐度:
点击下载文档文档为doc格式
0m0d436q6a8ojis8frhj
领取福利

微信扫码领取福利

微信扫码分享