微机原理及汇编语言课后习题解答

MAIN ENDP KEYMONTH PROC MOV BL,0

MOV CX,2

CON: MOV AH,1 INT 21H

CMP AL,‘Q’ JZ EXIT SUB AL,30H JL CON CMP AL,9 JG CON XCHG AL,BL MOV BH,10 MUL BH ADD BL,AL DEC CX JNZ CON MOV AL,BL EXIT: RET KEYMONTH ENDP DISMONTH PROC SUB AL,1 MOV BL,4 MUL BL LEA BX,TAB ADD BX,AX MOV CX,3 DIS: MOV DL,[BX] MOV AH,2 INT 21H INC BX LOOP DIS LEA DX,CR MOV AH,9 INT 21H RET

第 17 页 共 27 页

DISMONTH ENDP CODE ENDS

END START 14.给出下列等值语句: LPHA EQU 100 BETA EQU 25 GRAMM EQU 4

试求出下列表达式的值:

(1)ALPHA*100+BETA; (2)(ALPHA + 4)*BETA-2 (3)(BETA/3)MOD 5; (4)GRAMM OR 3

解:(1) ALPHA*100+BETA=10025 (2) (ALPHA + 4)*BETA-2=2598

(3) (BETA/3)MOD 5=3 (4) GRAMM OR 3=7

15.图示以下数据段在存储器中的存放形式。 DATA SEGMENT

DATA1 DB 10H,34H,07H,09H DATA2 DW 2 DUP(42H) DATA3 DB ‘HELLO’ DATA4 EQU 12 DATA5 DD OABCDH DATA ENDS

解:图示如下:

第 18 页 共 27 页

16.阅读下边的程序段,试说明它实现的功能是什么? DATA SEGMENT

DATA1 DB ‘ABCDEFG’ DATA ENDS CODE SEGMENT

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

MOV BX,OFFSET DATA1 MOV CX,7 NEXT: MOV AH,2 MOV AL,[BX] XCHG AL,DL INC BX INT 21H LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END AAAA

答:程序功能是显示字符串‘ABCDEFG’

17.编写一程序段,把BUFFER开始的100个字节的内存区域初始化为55H、0AAH、55H、

0AAH、??、55H、0AAH。 解:编写程序如下:

DATA SEGMENT

BUFFER DB 100 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,50 LEA BX,BUFFER LOP: MOV AL,55H MOV [BX],AL INC BX

MOV AL,0AAH

第 19 页 共 27 页

MOV [BX],AL INC BX LOOP LOP MOV AH,4CH INT 21H CODE ENDS

END START

18.有16个字节,编程序将其中第2、5、9、14、15个字节内容加3,其余字节内容乘

2(假定运算不会溢出)。 解:编写程序如下: DATA SEGMENT

BUFF DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 L EQU 0100100010000110B DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,16 MOV DX,L LEA BX,BUFF LP: MOV AL,[BX] SHL DX,1 JC LP1 ADD [BX],AL JMP LP2

LP1: ADD BYTE PTR[BX],3 LP2: INC BX LOOP LP MOV AH,4CH INT 21H CODE ENDS

END START

19.编写计算斐波那契数列前20个值的程序。斐波那契数列的定义如下: F(0)=0, F(1)=1,

F(N)=F(N-1)+F(N-2),N ≥ 2

第 20 页 共 27 页

联系客服:779662525#qq.com(#替换为@)