|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 loop 于 2011-5-27 00:23 编辑
这道题目,有点小问题!如果那些数 带0话 就出问题了- assume cs:code
- data segment
- dd 123,12666,1,894,42,573 ; 24
- dd 44444444,123456789 ;8
- data ends
- da segment
- db 255 dup(0)
- da ends
- code segment
- start: mov cx,8
- mov di,0
-
- to:
- mov ax,data
- mov ds,ax
-
- mov ax,[bx]
- mov dx,[bx+2]
- push cx
- push bx
- mov bx,0
- call dtoc
- pop bx
- pop cx
- add bx,4
- loop to
-
- mov dh,8
- mov dl,16
- mov cl,2
- call show_str
- mov ax,4c00h
- int 21h
-
-
- dtoc: push ax
- mov ax,da
- mov ds,ax
- pop ax
- go:
- mov cx,10
-
- call divdw
- jcxz save
- add cx,30h
- push cx
-
- inc bx
-
- jmp short go
-
- save:
-
- mov cx,bx
- mov bx,0
- s:pop ax
- mov [di+bx],ax
- inc bx
- loop s
-
- mov [di+bx],1fh ;插个空格
-
- add di,bx
- inc di
-
- ret
-
- divdw: ;参数 cx-除数 dx-被除数高位 ax-被除数低位
- ;返回值 ax-商的低位 dx-商的高位 cx-余数
- push bx
- mov bx,ax
- mov ax,dx
- mov dx,0
- div cx
- push ax
- mov ax,bx
- div cx
- mov cx,dx
- pop dx
- pop bx
- ret
-
-
- show_str:
- push cx
- MOV AX,0b800h
- MOV ES,AX
-
- dec dh
- mov ax,160
- mul dh
- push ax
-
- dec dl
- mov ax,2
- mul dl
- push ax
-
- pop bx
- pop di
- pop dx
- begin:
- mov cl,[si]
- mov ch,0
- jcxz over1
- mov es:[di+bx],cl
- inc bx
- mov es:[di+bx],dl
- inc bx
- inc si
- jmp short begin
- over1:
- ret
- code ends
- end start
复制代码 |
评分
-
查看全部评分
|