assume cs:code
data segment
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
data ends
table segment
dd 11 dup (0,0,0,0,0,0,0,0)
table ends
code segment
start: mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov si,0
mov di,0
mov cx,21
b: mov ax,[si]
mov dx,[si+2]
call dtoc
add si,4
add bx,8
loop b
mov ax,table
mov ds,ax
mov dh,4
mov dl,13
mov cl,2
mov si,0
call show_str
mov ax,4c00h
int 21h
dtoc: push si
push bx
push cx
push di
push bp
mov di,0ah
mov si,0
mov cx,di
s1: push ax
mov ax,dx
mov dx,0
div di
mov bp,ax ;保存高16位的商
pop ax
div di
add dx,30h
push dx
mov dx,bp
inc si
mov cx,ax
inc cx ;这CX+1主要是让CX=1时不触发跳转
jcxz s2
loop s1 ;CX-1
s2: mov cx,si
sub si,si
s3: pop dx
mov es:[si+bx],dl
inc si
loop s3
pop bp
pop di
pop cx
pop bx
pop si
ret
show_str: push dx
push cx
mov ax,0b800h
mov es,ax
mov ax,2
mul dl
mov bx,ax
sub bx,2
mov ax,0a0h
sub dh,1
mul dh
add bx,ax
mov ah,cl
mov di,0
mov cx,21
s: push cx
mov di,0
mov cx,8
a: mov al,ds:[si]
mov es:[bx+di],ax
inc si
add di,2
loop a
pop cx
add bx,0a0h
loop s
pop cx
pop dx
ret
code ends
end start
- [zaixuexi] 我以为是a0=0,a1=1,没仔细看 02/12 09:23
- [yang5731] 不对吧 我的结果应该是对的 N=9时 确实得217 你自己算算。你帮我看看论坛 算法上的程序吧 题 02/11 23:49
- [zaixuexi] 递归不是这么写的哦,我想你肯定没调试过自己写的这代码. 先看C代码吧: unsigned int 02/11 22:58
- [游客] <a href="http://www.playren.com/">整人方法</a> 12/15 17:11
- [wisji8] mov ax,0a0h mul dh mov bx,ax mov ax,2 mul 10/03 16:56
- [yang5731] 谢谢了 课程设计一做出来了 确实不能调用着个····· 08/25 02:50
- [mywiil] 课程设计一要用到这个子程序,这里暂不做评论。 赶紧完成课程设计一吧。 08/21 03:33