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
相关推荐
ThornArmor4 天前
【工具篇·番外】跨语言生态的主权回收:基于 ISA 说明书的 4-bit 双向汇编系统全线封顶
c语言·开发语言·汇编·c++·重构·架构
是星辰吖~5 天前
WIN32_线程(下)
汇编
是星辰吖~5 天前
WIN32_线程(上)
汇编
AI科技星6 天前
数术工坊 · 第四卷 橡皮泥江湖(拓扑学)【完整定稿】
c语言·开发语言·汇编·electron·概率论·拓扑学
iCxhust6 天前
C# 生成命令行程序 将hex格式烧录程序转换成bin烧录格式
开发语言·汇编·单片机·嵌入式硬件·c#·微机原理
iCxhust7 天前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理
hhcgchpspk7 天前
汇编语言传递数据和地址的误区
汇编·笔记·nasm·masm
iCxhust7 天前
MTK8088单板机制作(一)时钟电路
汇编·单片机·嵌入式硬件·微机原理·8088单板机
iCxhust7 天前
8086 汇编位测试使用方法
汇编·单片机·嵌入式硬件·微机原理·8088单板机
iCxhust7 天前
用汇编在8088单板机上创建一个进程
汇编·微机原理