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
相关推荐
清水白石0081 天前
WebSockets 在实时通信中的应用与优化
开发语言·汇编·python·websockets
南玖yy1 天前
如何创建和使用汇编语言,以及下载编译汇编软件(Notepad++,NASM的安装)
汇编·策略模式
南玖yy2 天前
x86 与 ARM 汇编深度对比:聚焦 x86 汇编的独特魅力
开发语言·汇编·arm开发·边缘计算
JCBP_2 天前
C++(4)
开发语言·汇编·c++
Funny-Boy4 天前
初识main函数
汇编·c++
0xCC说逆向5 天前
Windows逆向工程提升之IMAGE_IMPORT_DESCRIPTOR
c语言·汇编·windows·安全·逆向·pe结构
眸生5 天前
自制操作系统day7(获取按键编码、FIFO缓冲区、鼠标、键盘控制器(Keyboard Controller, KBC)、PS/2协议)
c语言·汇编·计算机外设·操作系统·计算机组成原理·寄存器
眸生6 天前
自制操作系统day8 (鼠标数据取得、通往32位模式之路、A20GATE、切换到保护模式、控制寄存器cr0-cr4以及cr8、ALIGNB)
c语言·汇编·计算机外设·操作系统·i/o外设
0xCC说逆向6 天前
Windows逆向工程提升之IMAGE_SECTION_HEADER
汇编·windows·单片机·嵌入式硬件·安全·逆向工程·pe结果
0xCC说逆向7 天前
Windows逆向工程提升之IMAGE_OPTIONAL_HEADER
汇编·windows·安全·架构·逆向·pe结构·pe文件