微机原理课后习题解答

2026/4/29 15:41:56

解:参考程序: DATA MSG1 MSG2 DATA

SEGMENT

DB 'Input binary number(ESC to exit):','$' DB 0AH,0DH,'Input error!',0AH,0DH,'$' ENDS

;定义输出一个字符的宏

OUTPUT MACRO ASC MOV MOV INT ENDM CODE

SEGMENT DL, ASC AH, 2 21H

ASSUME CS:CODE, DS:DATA MAIN PUSH MOV PUSH MOV MOV

PROC DS AX, 0 AX AX, DATA DS, AX

DX, MSG1 FAR

AGAIN: LEA MOV INT MOV MOV L: INT SHL CMP

AH, 9 21H

;提示输入信息 ;输入8位二进制数

CX, 8 BL, 0 MOV 21H BL, 1 AL, 1BH

AH, 1

;ESC键退出

JZ CMP JZ CMP JNZ INC

DONE AL, '0' NEXT AL, '1' ERROR BL

L

;输入“1” ;输入其他则出错 ;输入“0”

NEXT: LOOP OUTPUT 0AH OUTPUT 0DH PUSH MOV SHR CALL POP AND CALL

BX CL, 4 BL, CL TRAN BX BL, 0FH TRAN

;显示高4位对应的16进制数

;显示低4位对应的16进制数

OUTPUT 'H' OUTPUT 0AH OUTPUT 0DH JMP

AGAIN

DX, MSG2

ERROR: LEA MOV INT JMP

AH, 9 21H AGAIN

DONE: RET MAIN TRAN

ENDP PROC

FAR

CMP JB ADD

BL, 0AH BELOW BL, 7

BL, 30H

BELOW: ADD OUTPUT BL RET TRAN CODE END

ENDP ENDS MAIN

6、在8086系统下,编写完整程序,实现从键盘上输入两个4位十进制数,从显示器上显示这两个数之和,例如输入“1234”、“5678”,应在显示器上显示“6912”。 解:参考程序: DATA MSG1 MSG2 MSG3 DATA

SEGMENT

DB 'Input the first number(ESC to exit):','$' DB 'Input the second number(ESC to exit):','$' DB 0AH,0DH,'Input error!Input again:','$' ENDS

;定义输出一个字符的宏

OUTPUT MACRO ASC MOV MOV INT ENDM CODE

SEGMENT DL, ASC AH, 2 21H

ASSUME CS:CODE, DS:DATA MAIN: MOV MOV

DS, AX

AX, DATA

AGAIN: LEA MOV INT CALL PUSH

AH, 9 21H

DX, MSG1

;提示输入第一个数 ;输入过程

INPUT BX

OUTPUT 0AH OUTPUT 0DH LEA MOV INT CALL

DX, MSG2 AH, 9 21H

;提示输入第二个数 ;输入过程

INPUT

OUTPUT 0AH OUTPUT 0DH POP ADD DAA MOV ADC MOV DAA MOV MOV MOV JNC

AX

;实现两个4位组合BCD码相加 ;低8位相加 ;校正 ;保存至CL ;高8位相加 ;移至AL ;校正

AL, BL

CL, AL AH, BH AL, AH

AH, AL AL, CL BX, AX NEXT

;如果相加结果大于9999,则显示进位“1” BX

;最后结果放在BX中

OUTPUT '1' NEXT: PUSH MOV

CL, 4


微机原理课后习题解答.doc 将本文的Word文档下载到电脑
搜索更多关于: 微机原理课后习题解答 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219