网站百度提交入口:(跪求!!)汇编菜鸟求救

来源:百度文库 编辑:高校问答 时间:2024/04/19 21:05:08
大概就是创建一个数组,然后找出最大和最小的数存进max 和min。我编了一个,逻辑上没错,可是....
希望高人帮我改改吧!!
最好还能注释一下,谢谢!!

data segment
count dw 5
buf dw -1,0,2.5,4,5 dup(?)
max dw ?
min dw ?
data ends
stack segment
db 128 dup(?)
stack ends
code segement
assume cs:code,ds:data,ss:stack
start:mov ax,data
mov ds,ax
mov cx,count
push ds
mov ax,0
push ax
action2:mov SI,offset buf
mov ax,[SI]
cmp ax,[SI+2]
jl action1
mov max,[SI]
mov min,[SI+2]
mov SI,SI+2
loop action2
action1:mov max,[SI+2]
mov min,[SI]
mov SI,SI+2
dec cx
jmp action2
code ends
end start

加我的qq,我来告诉你.
9028826

你的代码过于混乱,没有格式,有许多错误, 而且思路
非常不清晰, 没有什么改的意义, 所以我写了一个跟你
的功能一样的程序,你按我的思路看看吧.

里面有些函数是我自己写的LIB, 你不必清楚他们的功能,只看两条--------------------------------------中的代码就可以了, 实现都在这里面了:

.MODEL SMALL
.386

;外部引用

INCLUDE SYSTEM.INC;
INCLUDE CONVER.INC;
INCLUDE PRINT.INC;

;************************************* 堆栈段 *****************************************

.STACK 256

;************************************* 数据段 *****************************************

.DATA

BUF DW -1, 0, 2 ,4 ,5, 9999, -9, 1, 8, 2, 888, 98, '$';
MAX DW ?; 保存BUF中最大值
MIN DW ?; 保存BUF中最小值

;************************************* 代码段 *****************************************

.CODE

START:

;程序初始化
MOV AX, @DATA;
MOV DS, AX;
MOV ES, AX;

CALL INIT;

;代码处:

;-------------------------------------------------

;AX暂时保存BUF中最大值
;BX暂时保存BUF中最小值

MOV AX, [BUF]; 使AX得到BUF第一个值
MOV BX, AX; 使BX得到BUF第一个值
LEA SI, BUF + 2; 最先与BUF的第二个值进行比较

CYC: CMP [SI], WORD PTR '$'; 判断是否超出BUF范围
JZ CHECK_END; 如果是则结束比较

CMP AX, [SI]; 让AX与BUF中数值进行比较
JGE CHECK_MIN; 如果大于等于则条转到CHECK_MIN
MOV AX, [SI]; 如果AX小于BUF中当前值, 则取BUF当前值

CHECK_MIN: CMP BX, [SI]; 让BX与BUF中数值进行比较
JLE CHECK_SUB; 如果大于等于则条转到CHECK_END
MOV BX, [SI]; 如果BX小于BUF中当前值, 则取BUF当前值

CHECK_SUB: ADD SI, 2; SI加2使得SI指向BUF中下一个数值
JMP CYC; 条转到CYC继续进行比较

CHECK_END: MOV MAX, AX; 向MAX装入最大值
MOV MIN, BX; 向MIN装入最大值

;-------------------------------------------------

;返回DOS

END0: CALL EXIT;

;************************************** 程序结束 *********************************************

END START

以后写代码最好保持一种良好的风格,这对阅读代码很有
帮助;

主要是这句代码导致的错误:code segement
多了个字母e。

我不太懂!不过希望你能懂!

希望你能懂!

是什么语言》?