asm汇编源代码之CPU型号检测

提供1个子程序:

1. CPU型号检测 CPUTYPE

无输入参数,返回值AX指示CPU类型(报歉,当时最新CPU型号只有80486)

函数的返回值详细描述如下

|-----------------------------------------------------------------------------------|
| CPUTYPE PROC  FAR ;OUT: AX=01, 8086; AX=02, 80286; AX=03, 80386; AX=04, 80486 UP; |

复制代码
; more source code at http://www.ahjoe.com/source/srcdown.asp

        PUBLIC  CPUTYPE

CODE    SEGMENT
        ASSUME  CS:CODE
CPUTYPE PROC    FAR
;OUT: AX=01, 8086; AX=02, 80286; AX=03, 80386; AX=04, 80486 UP;

        PUSH    BX

        PUSHF
        POP     AX
        MOV     BX, AX

        AND     AX, 0FFFH       ; CLEAR b15-b12
        PUSH    AX
        POPF
        PUSHF
        POP     AX
        AND     AH, 0F0H
        JNZ     IS8086

        MOV     AX, BX
        OR      AX, 0F000H      ; SET b15-b12
        PUSH    AX
        POPF
        PUSHF
        POP     AX
        AND     AH, 0F0H
        JZ      IS80286

        MOV     BX, SP
        AND     SP, NOT 3
        DB      66H
        PUSHF
        DB      66H
        POP     AX
        DB      66H
        OR      AX, 0
        DW      4
        DB      66H
        PUSH    AX
        DB      66H
        POPF
        DB      66H
        PUSHF
        DB      66H
        POP     AX
        DB      66H
        TEST    AX, 0
        DW      4
        JZ      IS80386
        JMP     IS80486

IS8086:
        MOV     AX, 01
        POP     BX
        RETF

IS80286:
        MOV     AX, 02
        POP     BX
        RETF

IS80386:
        MOV     AX, 03
        MOV     SP, BX
        POP     BX
        RETF

IS80486:
        DB      66H
        AND     AX, NOT 0
        DW      NOT 4
        DB      66H
        PUSH    AX
        DB      66H
        POPF
        MOV     AX, 04
        MOV     SP, BX
        POP     BX
        RETF
CPUTYPE ENDP

CODE    ENDS
        END     CPUTYPE
相关推荐
孤独的小丑13 小时前
OpenClaw学习资源汇编
汇编·学习
EnglishJun14 小时前
ARM嵌入式学习(八)--- 汇编应用:点亮led
汇编·arm开发·学习
2501_918126911 天前
学习所有6502写游戏存档的语句
汇编·嵌入式硬件·学习·游戏·个人开发
2501_918126911 天前
学习所有6502写游戏地图的语句
汇编·嵌入式硬件·学习·游戏·个人开发
2501_918126912 天前
学习所有6502写游戏动画的语句
汇编·嵌入式硬件·学习·程序人生·游戏
2501_918126912 天前
学习所有6502写游戏控制器的语句
java·linux·网络·汇编·嵌入式硬件
2501_918126913 天前
学习所有6502写游戏动作的语句
汇编·嵌入式硬件·学习·游戏·个人开发
2501_918126913 天前
学习所有6502游戏的系统
java·汇编·嵌入式硬件·学习·游戏
SCBAiotAigc3 天前
2026.3.18:汇编之字符串反转
汇编·具身智能
BigDark的笔记4 天前
【ARM汇编】0x01_ARM和C混合编程实现基本运算
c语言·汇编·arm开发