一个小小的汇编程序,烦请各位高手小看一下帮忙解决解决啊
我们刚学汇编,所以一些指令啊,格式啊都还不太会用,问老师他还不怎么愿意告诉我,所以还烦请大家帮帮忙啊!
下面的程序就是在BUFFER中找到最小的那个数,然后输出,我汇编了一下,没错,可就是运行不了,那个黑框框一蹦出来就有回去了,这是怎么回事呢?呵呵
这是别人编的,我也找不出来有什么错误,只是看出点儿小问题
;****************************************************
DATA SEGMENT
BUFFER DB 2,4,6,1,8 ;这几个数是不是输不出来呀?
COUNT EQU $-BUFFER ;BUFFER 前不加OFFSET行不行呀,意思会变吗?
MAX DW ? ;这句是不是不需要啊?
DATA ENDS
:**************************************************
STACK SEGMENT PARA STACK 'STACK' ;这个段是不是不需要啊?
DB 64 DUP(?)
TOP EQU $-STACK
STACK ENDS
;***************************************************
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,SS:STACK,DS:DATA
START:PUSH DS
MOV AX,0 ;与SUB AX,AX 有什么区别吗?
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,TOP ;这两句有必要吗?
MOV SP,AX
MOV CX,COUNT
LEA BX,BUFFER ;这个对吗,是不是应该换成MOV BX,0
MOV Al,BUFFER[BX]
INC BX
DEC CX
AGAIN:
CMP Al,BUFFER[BX]
JNGE NEXT
MOV Al,BUFFER[BX]
NEXT:
INC BX
DEC CX
JNZ AGAIN
MOV AH,2
MOV DL,AL
INT 21H
mov ax, 4c00h ;有RET这两句是不是就不用了呀?
int 21h
RET
MAIN ENDP
CODE ENDS
;*************************************************
END START