⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.asm

📁 用汇编语言编写的对二进制数的排序
💻 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 + -