汇编题目,帮忙改错啊!!!

来源:百度知道 编辑:UC知道 时间:2024/05/04 16:32:07
编程求Cmn,就是m个物品中选出n个的选法种数,我的编程如下,帮忙看看错在哪里啊!!!谢谢。。
assume cs:code

data segment
db 10 dup (20h)
data ends

stack segment
db 20 dup(0)
stack ends

code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,20

s:
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,02h
int 21h

mov ah,1
int 21h
mov bl,al
mov ah,1
int 21h

cmp al,bl
ja exit
mov dh,al
call jiecen
push ax
mov al,bl

call jiecen
push ax
mov al,dh
sub bl,al
mov al,bl
jmp short jiecen
mov bx,ax
pop ax
div bx
pop bx
div bx
mov di,9

s3:
mov bl,'$'
mov ds:[di],bl
dec di
mov bx,10

s4:
cmp ax,0
je s5
div bx
add dx,30h

就个人以为楼主计算代码过长,看我的:

...
;假设放m,n的内存字空间地址0000:0200与0000:0201
cmp n,m
ja E
mov AX, 0000H
mov DS, AX
mov BX, 0200H

mov AX, 1
xor CH, CH
mov CL, [BX]
L1: mov DL, CL
mul DL
loop L1

lea BX, [BX+2]
mov word ptr [BX], AX
dec BX

mov AX, 1
xor CH, CH
mov CL, [BX]
L2: mov DL, CL
mul DL
loop L2

lea BX, [BX+3]
mov word ptr [BX], AX
lea BX, [BX-4]

mov AX, 1
xor CH, CH
mov CL, [BX]
sub CL, [BX+1]
L3: mov DL, CL
mul DL
loop L3

lea BX, [BX+6]
mov word ptr [BX], AX
mov AX, word ptr [bx-4]
mov DX, word ptr [bx-2]
div DX
mov DX, word ptr [bx]
div DX
;现在AX中就是Cmn的值了
...
E: nop
...