微型计算机原理(第二版)王忠民《课后练习题解答》第五章 汇编语言程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微型计算机原理(第二版)王忠民主编之《课后练习题解答》

2008年06月27日星期五下午03:37

第五章汇编语言程序设计

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 ,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][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

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA

相关文档
最新文档