?? 1.asm
字號:
DATA SEGMENT
TABLE DB 1,2,3,4,5,6,7,8
XIAN1 DB "THE NUMBER OF FUSHU IS:","$"
XIAN2 DB " MIN=","$"
XIAN3 DB " MAX=","$"
XIAN4 DB "H","$"
DATA ENDS
STACK SEGMENT STACK
DB 100 DUP(?)
STACK ENDS;上為輸出說明及數據定義部分
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
;1
DIVIDE PROC
MOV DL,AL;據傳送
JMP L2
L1:INC BX;負數,把BX加1
JMP L3
L2:CMP DL,0;較正負
JL L1
L3:
RET
DIVIDE ENDP
;2
ZHUAN PROC
CMP AL,0;斷正負
JL FU
JMP ZHENG
FU:XOR AL,7FH
INC AL;負數求原碼
ZHENG:MOV DL,AL
MOV BL,AL
MOV CL,4
SHR DL,CL;移得倒高四位
ADD DL,30H
CMP DL,39H
JLE L1 ;高四位小于9則直接跳轉倒輸出
ADD DL,07H ;高四位大于9則加7
L1: MOV AH,2
INT 21H
MOV DL,BL
AND DL,0FH ;操作獲得低四位
ADD DL,30H
CMP DL,39H
JLE L2
ADD DL,7
L2: MOV AH,2
INT 21H;高四位同樣的處理
RET
ZHUAN ENDP
;3
MIN PROC
MOV CX,7
FINDMIN:LODSB
JMP BIJIAOMIN
PAIXUMIN:MOV DL,AL;L存儲較小數
JMP BAOCHIMIN
BIJIAOMIN:CMP AL,DL
JLE PAIXUMIN;找到較小的數就跳轉倒排序語句
BAOCHIMIN:;未找到比當前DL中小的數就保持
LOOP FINDMIN
MOV AL,DL
CALL ZHUAN
RET
MIN ENDP
;4
MAX PROC
MOV CX,7
FINDMAX:LODSB
JMP BIJIAOMAX
PAIXUMAX:MOV DL,AL
JMP BAOCHIMAX
BIJIAOMAX:CMP AL,DL
JGE PAIXUMAX
BAOCHIMAX:
LOOP FINDMAX
MOV AL,DL
CALL ZHUAN
RET
MAX ENDP;MIN子函數思路相同,只是尋找較大數而已。
START:
MOV BX,0
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET TABLE
MOV DX,OFFSET XIAN1
MOV AH,9
INT 21H;出說明部分
MOV CX,8
NUM: LODSB
CALL DIVIDE
LOOP NUM;用子函數ZHUAN統計負數個數
ADD BL,30H
MOV DL,BL
MOV AH,2
INT 21H;出BL中的值,即負數個數
;MIN求最小值
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET TABLE
MOV DX,OFFSET XIAN2
MOV AH,9
INT 21H;字說明部分
LODSB
;INC SI
MOV DL,AL
CALL MIN;用子函數MIN
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET XIAN4
MOV AH,9
INT 21H;指定文字格式輸出
;MAX
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET TABLE
MOV DX,OFFSET XIAN3
MOV AH,9
INT 21H;字說明部分
LODSB
;INC SI
MOV DL,AL
CALL MAX
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET XIAN4
MOV AH,9
INT 21H;指定文字格式輸出
MOV AH,4CH
INT 21H;程序結束
CODE ENDS
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -