微型计算机原理 王忠民 课后答案 汇编语言程序设计 下载本文

内容发布更新时间 : 2024/5/20 12:14:11星期一 下面是文章的全部内容请认真阅读。

第五章 汇编语言程序设计

1.画图说明下列语句所分配的存储空间及初始化情况。

(1)42H 59H 54H 45H 00H EEH 00H 07H 01H 02H 01H 02H 07H 00H 07H 01H 02H 01H 02H 07H 00H 07H 01H 02H 01H 02H 07H

(2)00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 07H 00H FBH FFH 59H 42H 45H 54H 02H 56H

2.(PLENTH)=22H;它表示数据与的长度 3.(L)=06H

4.(1)MOV BX OFFSET LNAME

(2)MOV SI WORD PTR CODE_LIST

(3)MOV CODE_LENGTH EQU $-CODE_LIST 5.(AX)=10 (BL)=10 (CL)=1

6.(1).(AX)=1 (2).(AX)=2 (3).(CX)=20 (4).(DX)=40 (5).(CX)=1

7.是说明下列指令中那些需要加上PR伪指令定义符。

(1).不需要(2)不需要(3)SUB [BX],WORD BYTE 2(或其他形式)(4).MOV CL,BYTE PTR WVAL

8.编一宏定义BXCHG,将一字节高4位和低4位交换。 BXCHG MARCO OPR MOV AL ,OPR MOV CL,04H ROL AH,CL ROR AL,CL OR AH , AL MOV OPR,AH ENDM

9.已知宏定义,展开宏调用:OPP BH,BL,CH,CL +MOV AX,BX +XCHG AL,CL +MOV AX,BL +XCHG AL,CH +MOV BL,AL

10.将寄存器中的16位数分成四组,每组四位,分别存放在AL,BL,CL和DL中。 MOV CH,04H MOV CL,AL MOV DL,AL SHR CL,CH AND DL,AH

MOV AL,AH MOV BL,AH SHR AL,CH AND BL,0FH

11.试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示MATCH,若不相同则显示NOMATCH. 解:DATA SEGMENT

STRING1 DB ‘ABCDE’ STRING2 DB ‘ABCDEF’ MESG1 DB ‘MATCH$’ MESG2 DB ‘MATCH$’ DATA ENDS STACK SEGMENT

BUF DB 100DUP(?) STACK ENDS

CODE SEGMENT MAIN PROC FAR START:PUSH DS MOV AX,0 PUSH AX PUSH ES

MOV AX,DATA

MOV DS,AX

MOV AL,STRING1 MOV CL,6

MOV SI,OFFSET STRING1 MOV DI,OFFSET STRING2 CLD

REPE CMPSB JZ ALLMATCH

MOV DX OFFSET MESG2 MOV AH,9 INT 21H RET

ALLMATCH: MOV DX OFFSET MESG1

MOV AH 9 MOV 21H RET

MAIN ENDP CODE ENDS

END START

13.编写程序,将一个包含有20个数据的数组M分成两个数组,正数组P和负数组,分别把这两个数组中的数据的个数显示出来。 解:DATA SEGMENT

M DB 1 ,2,3,4,5,6,7,8,9,10 DB -1,-2,-3,-4,-5,-6,-7,-8,-9,-10 P DB 20DUP(?)

N DB 20DUP(?)

DATA ENDS CODE SEGMENT MAIN PROC FAR START:PUSH DS MOV AX,0 PUSH AX

MOV AX,DATA MOV DS,AX MOV AL,0

MOV SI OFFSET M MOV CX 20H

LOOP1: MOV BL,M[SI] CMP AL,M[SI JAE LOOP2 MOV N,BL

INC SI

CMP CX,20H JZ LOOP3 JMP LOOP1

LOOP2: DEC CX

MOV P, BL INC SI

CMP CX,20H JZ LOOP3 JMP LOOP1

LOOP3: MOV DX,OFFSET P

MOV AH,9

INT 21H

MOV DX,OFFSET N MOV AH, 9 INT 21H

RET

MAIN ENDP CODE ENDS

END START

20.编写程序,求字节变量BVAR中的压缩BCD数转换为二进制数,并存入原变量中。

解:DATA SEGMENT

BVAR DW 53H,00H DATA ENDS