彙編求數組中的最小值,串操作指令實現
主要用到的知識
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