回 帖 发 新 帖 刷新版面

主题:我国的发现:杨辉三角

相信搞过编程的高手们一定见过(杨辉三角)了吧!!
杨辉三角是我过发现的这已成事实,不过我们大多是用C ,C++等一些高级语言来编。
我现在是想还不知道那位汇编语言高手能将其搞定的,因为我的却是在网站是没看到---也不知道那位仁兄能帮帮小弟。
其实我也是汇编的初学者,也知道老师们通说什么汇编是怎么的简单,可时间是有限的,所以还希望大家帮帮忙。要求要不高,只要7行就OK了。拜托了!!!!!![em18]

回复列表 (共8个回复)

沙发

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

板凳

兄弟,先谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![em16]

3 楼

[em14]

4 楼

[em14]
这问题一定要注意一下了。
不过你还是要等等,这好象以前搞过。。。。。

5 楼

不是耍我的吧
要是。。。。

6 楼

这是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 楼

要  是有错可别怪我

8 楼

[em1]

我来回复

您尚未登录,请登录后再回复。点此登录或注册