汇编求数组中的最小值,串操作指令实现
主要用到的知识
LODSW 从串中读取指令
DATA SEGMENT
TABLE DW 12,32,43,65,76,8,7,6,4,3,56,76,45,34,5;15个数,最小值为 3
MIN DW 0
DATA ENDS
STAK SEGMENT
DW 20H DUP(?)
STAK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX;把值赋给DS
LEA SI,TABLE ;取da首地址给SI
MOV AX,0
MOV BX,[SI] ;将DA[0]值赋给MAX
MOV CX,14 ;循环15次,table[0]不用修改
LOP: LODSW ;AL<=DS[SI] SI=SI+2
CMP BX,AX ; MIN 与AL比较
JB L1 ;若BL大于或等于AL则跳转到L1
MOV BX,AX
L1: LOOP LOP ;若CX!= 0 则继续跳转到LOP
MOV MIN,BX
MOV AH, 02H
MOV DX,BX
INT 21H
MOV AX,4C00H ;返回DOS 退出程序
INT 21h
CODE ENDS
END START