用汇编的循环控制指令设计程序段,从60H个元素中寻找一个最大值,结果放在AL中

来源:百度知道 编辑:UC知道 时间:2024/06/22 17:52:24
我是初学汇编的,遇到点麻烦,请高手指点,谢谢!

;这里我就用比较广泛的INTEL8086学一个例子了
;这里的每个元素就占一个字节吧,要不结果就不放AL中了,
DATA SEGMENT
DATA DB 60H DUP(?)
ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,0H ;SI用于数组变量DATA的下标
MOV CX,60H ;确定循环次数为60H
L1: ;在这L1循环中就是不断的比较大小后交换值
MOV AL,DATA[SI]
MOV AH,DATA[SI+1]
CMP AL,AH
JB NEXT1 ;当大AL大于AH就顺序向下执行,否着跳到NEXT1
MOV BYTE PTR DATA[SI],AH
MOV BYTE PTR DATA[SI+1],AL
NEXT1:INC SI
LOOP L1 ;循环指令LOOP,这里跳回L1处,循环次数由CX决定
MOV AL,DATA[SI-1] ;循环后SI为60,所以减1
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START

你可以多看看这方面的书,因为我不知道你学的是什么编程书,你在说的具体一点,这样更容易帮你解决问题。