在终端显示1234
assume cs:code,ds:data,ss:stack
data segment
dw 1234
data ends ;数据段
stack segment stack
db 128 dup (0)
stack ends
;栈段
code segment
start: mov ax,stack
mov ss,ax
mov sp,128 ;设置栈
mov bx,data
mov ds,bx
mov si,0 ; 数据来源,si指向data:[0]的位置
mov bx,0b800h
mov es,bx
mov di,160*8 ;每行80个字
add di,40*2 ; 第八行中间位置
mov ax,ds:[si] ; ax = 商 ,dx = 余数
mov dx,0
call short_div
mov ax,4c00h
int 21h
short_div:
mov cx,10
div cx ; ax中存放商,
add dl,30h
mov es:[di+0],dl
mov byte ptr es:[di+1],00000010B
mov cx,ax ;用 cx 判断商是否为0
jcxz shortDivRet
mov dx,0
sub di,2
jmp short_div
shortDivRet:
ret
code ends
end start
思路
- 不能直接输出1,要用1的ascii码,1+30H
- 1234/10,不断的除下去,分别得到 1 2 3 4位