21,500
社区成员
发帖
与我相关
我的任务
分享.model small
.386
.data
hchar db '0123456789abcdef'
x db ?
.CODE
START:
mov ax,@data
mov ds,ax
mov ah,1
int 21h
mov x,al
push ax
mov dl,0ah
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h
pop ax
shr al,4
movzx si,al
mov dl,hchar[si]
mov ah,2
int 21h
mov al,x
and al,0fh
movzx si,al
mov dl,hchar[si]
mov ah,2
int 21h
mov dl,'H'
mov ah,2
int 21h
mov ah,4ch
int 21h
END START data segment
num db 01Fh
data ends
stack segment STACK
db 256 dup(0)
tos label word
stack ends
code segment
assume cs:code,ds:data
begin:
mov ax,0d
mov ax,0dh
mov ax,data
mov ds,ax
mov es,ax
mov ax,stack
mov ss,ax
mov sp,offset tos
xor ax,ax
mov al,num
xor cx,cx
;下面是将cout中的数以十进制显示出来
DoDiv:
mov bl,10
div bl ;al←ax/10的商
;ah←ax/10的余数
push ax ;保存结果
inc cx
xor ah,ah ;ah清零,清除余数
cmp al,0 ;判断商是否为零
jnz DoDiv
DoPrt:
pop dx ;dx中保存的是每次除的结果
xchg dh,dl
add dl,30h ;dl中的数字是每次除后的商,将其表示成ascii
mov ah,2
int 21h
loop DoPrt
exit:
mov ax,4c00h ;退出DOS
int 21h
code ends
end begin