微机原理课后题目答案(5)

2019-04-01 18:25

MOV CL,4

SHL DX,CL

XCHG AL,AH ;余数保留在AL 中 SUB AH,AH

MOV CL,10 ;计算十位数

DIV CL

ADD DL,AL ;十位数加到DL 中,DX 左移4 位 MOV CL,4 SHL DX,CL

ADD DL,AH ;加个位数 MOV AX,DX ;结果送到AX 中 POP DX POP CX EXIT: RET

B2TOBCD ENDP

(2)将AX 中4 位BCD 码顺序乘以1000,100,10 和1,然后求和即得。 子程序名:BCDTOB2

输入参数:AX=4 位压缩BCD 码 输出参数:AX=十六位二进制数

使用寄存器:BX:暂存数据,CX:存放乘数,DX:存放中间结果 BCDTOB2 PROC FAR PUSH BX PUSH CX PUSH DX MOV BX,AX MOV CL,4 ROL AX,CL

AND AX,000FH

MOV CX,1000 ;乘以1000 MUL CX MOV DX,AX MOV AX,BX MOV CL,8 ROL AX,CL

AND AX,000FH

MOV CL,100 ;乘以100 MUL CL ADD DX,AX MOV AX,BX MOV CL,4 SHR AX,CL

AND AX,000FH

MOV CL,10 ;乘以10 MUL CL

ADD DX,AX AND BX,000FH ADD DX,BX MOV AX,DX POP DX POP CX POP BX

RET

BCDTOB2 ENDP

9. 编写两个通用过程,一个完成ASCII 码转换成二进制数功能,另一个完成ASCII 字符显 示输出功能。

答:(1)将AX 中两位ASCII 码先转化成数字,然后AH*10+AL。 子程序名:ASCIITOB2

输入参数:AX=2 位ASCII 码 输出参数:AX=转换后二进制数 使用寄存器:BX,CX,DX ASCIITOB2 PROC FAR PUSH BX PUSH CX PUSH DX MOV BX,AX

SUB AH,30H MOV AL,AH

MOV CL,10 ;乘以10 MUL CL MOV DX,AX MOV AX,BX SUB AL,30H MOV AH,0 ADD AX,DX POP DX POP CX POP BX RET

ASCIITOB2 ENDP

(2)使用2 号DOS 功能调用显示字符。 子程序名:DISPLAY

输入参数:AX=2 位ASCII 码 输出参数:无 使用寄存器:BX,DX DISPLAY PROC FAR PUSH BX PUSH DX MOV BX,AX

MOV DL,AH MOV AH,2 INT 21H MOV AX,BX MOV DL,AL MOV AH,2 INT 21H POP DX POP BX RET

DISPLAY ENDP

10. 编制两个通用过程,完成十六进制数转换成ASCII 码并将ASCII 码字符显示。 答:(1)子程序名:HEXTOASC 输入参数:AX:4 位十六进制数

输出参数:DX,AX:4 位ASCII 码,DX 高2 位,AX 低2 位 使用寄存器:BX,CX,DX HEXTOASC PROC FAR PUSH BX PUSH CX PUSH DX

MOV BX,AX

MOV CL,4 ;转换AH 高4 位 SHR AX,CL AND AX,0F00H ADD AH,30H CMP AH,3AH JB A1

ADD AH,7

A1: MOV DH,AH

MOV AX,BX ;转换AH 低4 位 AND AX,0F00H ADD AH,30H CMP AH,3AH JB A2

ADD AH,7

A2: MOV DL,AH

MOV BH,BL ;转换AL 高4 位 MOV CL,4 SHR BL,CL ADD BL,30H CMP BL,3AH JB A3

ADD BL,7

A3: MOV AH,BL

AND BH,0FH ;转换AL 低4 位 ADD BH,30H CMP BH,3AH JB A4

ADD BH,7 A4: MOV AL,BH POP DX POP CX POP BX RET

HEXTOASC ENDP

(2)子程序名:DISPLAYASC 输入参数:DX,AX:4 位ASCII 码 输出参数:无 使用寄存器:BX,CX DISPLAYASC PROC FAR PUSH BX PUSH CX MOV BX,DX MOV CX,AX MOV DL,BH MOV AH,02H INT 21H MOV DL,BL INT 21H MOV DL,CH INT 21H MOV DL,CL INT 21H MOV DL,?H? INT 21H POP CX POP BX RET

DISPLAYASC ENDP

11. 某程序可从键盘接收命令(0~5),分别转向6 个子程序,子程序入口地址分别为P0~ P5,编制程序,用跳转表实现分支结构。 答: DATA SEGMENT TABLE DW 6 DUP(?) DATA ENDS CODE SEGMENT

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

LEA SI, TABLE

MOV WORD PTR[SI],OFFSET P0 MOV WORD PTR[SI+2],OFFSET P1 MOV WORD PTR[SI+4],OFFSET P2 MOV WORD PTR[SI+6],OFFSET P3 MOV WORD PTR[SI+8],OFFSET P4 MOV WORD PTR[SI+10],OFFSET P5 MOV AH,1 INT 21H SUB AL,30H SHL AL,1 MOV AH,0 MOV SI,AX JMP TABLE[SI] P0: P1: P2: P3: P4: P5:

MOV AH,4CH

INT 21H CODE ENDS END START

12. 在首地址为TABLE 的数组中按递增次序存放着100 个16 位补码数,编写一个程序,把 出现次数最多的数及其出现次数分别存放于AX 和BL 中。 答: DATA SEGMENT TABLE DW 100 DUP (?) ;数组中的数据是按增序排列的 NUM DW ? COUNT DW 0 DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS: CODE, DS: DATA START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX

MOV AX, DATA

MOV DS, AX ;给DS 赋值 BEGIN: MOV CX, 100 ;循环计数器 MOV SI, 0

NEXT: MOV DX, 0 MOV AX, TABLE[SI]

COMP: CMP TABLE [SI], AX ;计算一个数的出现次数


微机原理课后题目答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版数学八上第15章《整式乘除与因式分解》word学案8节

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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