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

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

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

16、程序段如下: CXFX

BLK1 DB 46,84,34,-5,20,122,73 :

MOV CX,7

LEA S1,BLK1

NEXT: MOV AL,[SI] INC SI

TEST AL,81H LOOPZ NEXT MOV BL,[SI] :

请回答程序段运行后:(AL)=___5或0FBH__ (BL)=___14H或20______ 17、下面程序的功能是什么? CXFX STRING DB 100 DUP(?) MOV AX,SEG STRING MOV DS,AX

LEA SI,STRING MOV CX,100 LAB: MOV AL,[SI] CMP AL,’a’ JB LAB1

CMP AL,’z’ JA LAB1 SUB AL,32 MOV [SI],A

LAB1: INC SI

LOOP LAB

将STRING里的小写字母’a’-‘z’转成相应的大写字母’A’-‘Z’ 18、现有下列数据段: CXTK DATA SEGMENT

STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS

下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。

MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF

MOV CX,COUNT

___CLD_或 STD_____ LOOP:MOVSB

26

______ SUB SI,2__或____ ADD DI,2__

LOOP LOP

19、下述程序段完成计算2~20之间的偶数的和,并存于AX中。试把空白处填上适当的指令。 CXTK

XOR AX,AX

MOV BX,0

MOV CX,10或MOV CX,0AH CONT: ADD AX,BX

ADD BX,2 LOOP CONT

20、BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。 CXTK

MOV CX,32H LEA SI,BEG MOV DI,SI (1)

DON:MOV AL,[SI] (2) MOV [SI],AL (3) DEC DI LOOP DON HLT

答: (1) ADD DI, 99

(2) XCHG AL, [DI]

(3) INC SI

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

DATA SEGMENT DA1 DW XXXX DATA ENDS 答:

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

27

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

22、下述程序段完成计算2~20之间的偶数的和,并存于AX中。试把空白处填上适当的指令。 CXTK

XOR AX,AX MOV BX,0

MOV CX,10或MOV CX,0AH CONT: ADD AX,BX

ADD BX,2

LOOP CONT

23、如下程序应用冒泡法对一个无符号数组排序(由小到大排序),请完成该程序。

(注:为该程序分配100字的堆栈存储空间。) CXTK SSEG SEGMENT STACK

DW 100 DUP (?) SSEG ENDS DSEG SEGMENT

SWAP DB ?

ARRAY DW 32760, 127, 0, 65000, 230, 100 DSEG ENDS

CSEG SEGMENT

ASSUME CS∶CSEG,DS∶DSEG,SS∶SSEG START: MOV AX,DSEG MOV DS,AX

SORT: MOV CX,5

MOV SI,0 MOV SWAP,0

INNER: MOV AX,ARRAY[SI] CMP AX,ARRAY[SI+2] JBE NOSWAP

XCHG AX,ARRAY[SI+2]

MOV ARRAY[SI],AX MOV SWAP,1

NOSWAP: ADD SI,2

28

LOOP INNER

CMP SWAP,1 JNZ SORT MOV AH,4CH INT 21H CSEG ENDS

END START

第7章:子程序设计

1、主程序和所调用的子程序在同一代码段中,子程序的属性应定义为( C )。 DX

A.TYPE B.WORD C.NEAR D.FAR 2、 MOV AL,38H MOV BL,49H CALL SUBO INC AL DEC CL ┇

SUBO PROC ADD AL,BL MOV CL,AL

DAA RET

SUBO ENDP

上述程序段运行后,AL=________88H _____________,CL=________80H __________。 CXFX

3、FACT PROC

PUSH DX

MOV DX,AX CMP AX,0 JZ DONE DEC AX CALL FACT MUL DX POP DX RET DONE:MOV AX,1 POP DX RET

FACT ENDP

若执行以上子程序前,(AX)=5,则子程序完成的功能是: 求5!(或求5的阶乘) ,执行该子程序后(AX)= 120 。 CXFX

4、在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。(占内存空间大,但速度快)。 DX

29

5、设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。 CX

数据段如下: DATA SEGMENT

DAT DB XXH

SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDS 答:

DATA SEGMENT DAT DB XXH

SQRTAB DB 0,1,4,9,?,81 SQR DB?

DATA EMDS

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

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

MOV DS,AX ┇

CALL SUBROT ┇

MOV AH,4CH INT 21H SUBROT PROC PUSH AX PUSH BX LEA BX,SQRTAB MOV AL,DAT TEST AL,80H JNS NEXT

NEG AL

NEXT: XLAT SQRTAB MOV SQR,AL POP BX POP AX RET

SUBROT ENDP

CODE ENDS END SRART

6、设在内存单元SQTAB首址开始存放了0~15的平方数表。要求用直接查表法

30

编一程序,求出A单元中给定数(<=15=的平方值送B单元保存。 BC

答: DATA SEGMENT

SQTAB DB 0,1,4,9,16,25,36,49,64,81 DB 100,121,144,169,196,225 A DB 12 B DB?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DX XOR AX,AX PUSH AX

MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET SQTAB MOV AL,A XLAT

MOV B,AL RET

START ENDP

CODE ENDS END START

7、FUNCTION MACRO P1,P2,P3 MOV AX,P1 P2 P3 ENDM

请回答下列问题:

⑴上面程序段中,MACRO和ENDM是一对伪指令,在 宏 定义中,它们成对出现。

⑵通过调用语句FUNCTION 100,SUB,AX调用之后,AX寄存器中的内容为 99 。 CXFX

31

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

16、程序段如下:CXFXBLK1DB46,84,34,-5,20,122,73:MOVCX,7LEAS1,BLK1NEXT:MOVAL,[SI]INCSITESTAL,81HLOOPZN
推荐度:
点击下载文档文档为doc格式
0m0d436q6a8ojis8frhj
领取福利

微信扫码领取福利

微信扫码分享