主题:我国的发现:杨辉三角
flyhay
[专家分:30] 发布于 2004-12-28 11:21:00
相信搞过编程的高手们一定见过(杨辉三角)了吧!!
杨辉三角是我过发现的这已成事实,不过我们大多是用C ,C++等一些高级语言来编。
我现在是想还不知道那位汇编语言高手能将其搞定的,因为我的却是在网站是没看到---也不知道那位仁兄能帮帮小弟。
其实我也是汇编的初学者,也知道老师们通说什么汇编是怎么的简单,可时间是有限的,所以还希望大家帮帮忙。要求要不高,只要7行就OK了。拜托了!!!!!![em18]
回复列表 (共8个回复)
沙发
铁血民工 [专家分:250] 发布于 2004-12-28 16:17:00
6行,再多的话不知道怎么显示,没有用递归的方法。
data segment
n7 db 7 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov n7[0],1
mov n7[1],1
mov cx,4
lop1:
mov si,0
mov al,1
mov dl,31h
mov ah,2
push ax
int 21h
pop ax
lop2:
xchg al,n7[si]
inc si
add al,n7[si]
cmp al,0
jz nex
mov dl,al
or dl,30h
cmp dl,39h
jle small
add dl,7
small:
push ax
int 21h
pop ax
jmp lop2
nex:
mov dl,0dh
int 21h
mov dl,0ah
int 21h
loop lop1
mov ax,4c00h
int 21h
code ends
end start
板凳
flyhay [专家分:30] 发布于 2004-12-28 19:49:00
兄弟,先谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![em16]
3 楼
过路者 [专家分:20] 发布于 2004-12-29 10:44:00
[em14]
4 楼
过路者 [专家分:20] 发布于 2004-12-29 10:45:00
[em14]
这问题一定要注意一下了。
不过你还是要等等,这好象以前搞过。。。。。
5 楼
flyhay [专家分:30] 发布于 2004-12-29 10:50:00
不是耍我的吧
要是。。。。
6 楼
过路者 [专家分:20] 发布于 2004-12-29 11:43:00
这是20*20行列的,至于你要7行的话就自己改了拉。但我不能保证我的是正确的 ,不过还是要其他的大老们讨教一下,就这样了。。。。。。。。。
MAXARRY equ 20
.model small
.data
a dw MAXARRY dup(MAXARRY dup(0))
N dw ?
f1 db 13,10,'Input N=',0
f2 db '%d',0
f3 db 'N too larger!',13,10,0
f4 db '%4d',0
f5 db 13,10,0
.code
extrn _printf:near
extrn _scanf:near
public _main
extrn startx:near
_start proce near
jmp startx
_start endp
_main proc near
mov ax,@data
mov ds,ax
mov ax,offset f1
push ax
call _printf
pop ax
lea ax,N
push ax
mov ax,offset f2
push ax
call _scanf
pop ax
pop ax
cmp N,MAXARRY-1
jbe @86
mov ax,offset f3
push ax
call _printf
pop ax
ret
@86:
mov si,1
jmp @170
@114:
mov ax,si
mov bx,MAXARRY*2
imul bx
mov bx,1
shl bx,1
mov a[bx],1
mov ax,si
mov bx,MAXARRY*2
imul bx
shl bx,1
add bx,ax
mov a[bx],1
inc si
@170:
cmp si,N
jle @114
mov si,3
jmp @366
@226:
mov di,2
jmp @310
@254:
mov ax,si
dec ax
mov bx,MAXARRY*2
imul bx
mov bx,ax
shl bx,1
add bx,ax
mov cx,a[bx]
mov ax,si
dec ax
mov bx,MAXARRY*2
imul bx
mov bx,di
dec bx
shl bx,1
add bx,ax
add cx,a[bx]
mov ax,si
mov bx,MAXARRY*2
imul bx
mov bx,di
shl bx,1
add bx,ax
mov a[bx],ex
inc di
@310:
mov ax,si
dec ax
cmp di,ax
jle @254
inc si
@366:
cmp si,N
jle @266
mov si,1
jmp @590
@422:
mov di,1
jmp @506
@450:
mov ax,si
mov bx,MAXARRY*2
imul bx
mov bx,di
shl bx,1
add bx,ax
push ax
call _printf
pop ax
pop ax
inc di
@506:
cmp di,si
jle @450
mov ax,offset f5
push ax
call _printf
pop ax
inc si
@590:
cmp si,N
jle @422
ret
_main endp
end _start
7 楼
过路者 [专家分:20] 发布于 2004-12-29 11:44:00
要 是有错可别怪我
8 楼
过路者 [专家分:20] 发布于 2004-12-29 11:48:00
[em1]
我来回复