汇编语言:. 将 DX 寄存器中的二进制数(3 F 2 E H)以十六进制数形式显示在屏幕上;然后换
行从
1、将 DX 寄存器中的二进制数(3 F 2 E H)以十六进制数形式显示在屏幕上;然后
换行从然后换行从屏幕最左端开始显示 16。
2、3F2EH 统计此二进制数中“1”的个数,将此个数保存在 BL 里,并显示在屏幕上。
回答好的话我会追加 100 分的
这是两个问题,不要放一块写啊!
第二个问题是显示 10 进制数的个数
参考内容:
程序说明:
1. 一个字单元有 4 位十六进制数,如要将此十六进制数按顺序显示在屏幕上,必
须用循环移位的方法把所要显示的 4 位二进制数移到最右面,即分离出每个 4 位,
对分离出来的 4 位进行 1 位十六进制数的转换。
2. 要统计二进制数中 1 的个数,即检测每位上的数值,可以固定对此二进制数
的某位进行检测,检测之后对此数进行移位(左移或右移均可)处理,通过一个
循环完成 1 的个数的统计。
第一题:
CSEG SEGMENT
assume
cs:CSEG
MAIN PROC FAR
;主程序入口
x0:
x1:
x2:
mov dx,3f2eh
mov bx,dx
mov cx,4
rol bx,1
rol bx,1
rol bx,1
rol bx,1
mov dl,bl
and dl,0fh
cmp dl,0ah
jl x1
add dl,37h
jmp x2
add dl,30h
mov
ah,02h
int 21h
loop
x0
mov dl,0ah
int 21h
mov dl,31h
;= 这 =
;= 些 =
;= 是=
;=输=
;=出=
;
;
;
;
;
;
;
;
;
;
;换行
;输出 16
int 21h
mov dl,36h
int 21h
;程序结束,返回到操作系统系统
;按任意键退出
mov ah,1
int 21h
mov ax, 4c00h
int 21h
MAIN ENDP
CSEG ENDS
END MAIN
第二题:
CSEG SEGMENT
assume
cs:CSEG
MAIN PROC FAR
;主程序入口
mov dx,3f2eh
mov ax,dx
mov bx,0
mov cx,16
ror ax,1
jnc x3
add bx,1
loop x4
mov ax,bx
daa
mov bx,ax
mov cx,4
rol bx,1
x4:
x3:
x5:
rol bx,1
rol bx,1
rol bx,1
mov dl,bl
and dl,0fh
cmp dl,0ah
jl x6
add dl,37h
x6:
x7:
jmp x7
add dl,30h
mov
ah,02h
int 21h
loop
x5
;此处添加主程序代码
;程序结束,返回到操作系统系统
;按任意键退出
mov ah,1
int 21h
mov ax, 4c00h
int 21h
MAIN ENDP
CSEG ENDS
END MAIN