微机原理考试题(高分悬赏)

来源:百度知道 编辑:UC知道 时间:2024/05/28 00:55:02
一共有2道大题(明天就考试了,大家帮帮忙)
(要求答案正确)
1.用十六进制形式将BL的内容显示在屏幕上.
2.把内存中BUF1开始100个单元组合BCD码转换为ACSⅡ码,放在BUF2开始的100个单元内.

虽然是两道题,但解题思路几乎相同。

1、用十六进制形式将BL的内容显示在屏幕上

; 本程序通过编译,运行正确。

Code Segment
Assume CS:Code,DS:Code
; -----------------------------------------
; 功能:输出一个字符
; 入口:dl=要显示的字符
enter_Chr proc Near
push ax
mov ah,02h
int 21h
pop ax
ret
enter_Chr endp
; -----------------------------------------
; 功能:将AL中的低4位二进制数转换成ASCII码
; 入口:AL
; 出口:AL=转换后的ASCII码
AL_ASCII Proc Near
cmp al,9 ;AL>9?
ja @@Letter ;AL>9,按大写字母处理
or al,30h ;AL<=9,按数字处理
ret
@@Letter: sub al,9 ;字母,AL减9
or al,40h ;转换成相应的大写字母
ret
AL_ASCII EndP
; -----------------------------------------
; 功能:将AL中的字节数转换成ASCII码
; 入口:AL
; 出口:AX=转换后的ASCII码
Byte_ASCII Proc Near
mov cx,4
xor ah,ah ;将AH置0
shl ax,cl ;将AX左移4位
shr al,cl ;将AL右移4位
xchg ah,al
call AL_ASCII ;调用子程序,将AL中的值转换成相应的ASCII码
xchg ah,al