【原创】报告CPU当前工作模式的汇编源代码

简介: 【原创】报告CPU当前工作模式的汇编源代码
;Name:     CPUMODE.ASM
;Function: Report current CPU working mode
;Version : 0.1b
;Author  : Purple Endurer
;Develop Environment : Microsoft (R) Programmer's WorkBench version 2.1.49
;
;Note:   Options -> Project Templates -> Set Project Template...
;        Select "DOS COM"
;
;Date          summary
;Mar 23, 2002  Created
;Apr  5, 2002  Added EMM detector
;Apr  6, 2002  Added china messages
.286

cseg segment
     assume  cs:cseg,  ds:cseg
     ORG 100h

Start:

      mov   ax, 1100h
      mov   bh, 10h
      mov   bl, 0
      mov   cx, 1
      mov   dx, 0bbh
      mov   bp,  offset huang1
      int  10h
      mov   dx, 0c6h
      mov   bp,  offset huang2
      int  10h
      mov   dx, 0d6h
      mov   bp,  offset zhi1
      int  10h
      mov   dx, 0beh
      mov   bp,  offset zhi2
      int  10h
      mov   dx, 0b1h
      mov   bp,  offset bin1
      int  10h
      mov   dx, 0f3h
      mov   bp,  offset bin2
      int  10h
      mov   dx, 0b9h
      mov   bp,  offset gong1
      int  10h
      mov   dx, 0a4h
      mov   bp,  offset gong2
      int  10h
      mov   dx, 0d7h
      mov   bp,  offset zhuo1
      int  10h
      mov   dx, 0f7h
      mov   bp,  offset zhuo2
      int  10h
      mov   dx, 0c4h
      mov   bp,  offset mo1
      int  10h
      mov   dx, 0a3h
      mov   bp,  offset mo2
      int  10h
      mov   dx, 0cah
      mov   bp,  offset shi1
      int  10h
      mov   dx, 0bdh
      mov   bp,  offset shi2
      int  10h
      mov   bx,  offset strMyname
      mov   cx, 6

lblUnlock:

      add  byte  ptr [ bx], 0b1h
      inc  bx
      loop lblUnlock

      mov   dx,  offset strMsg
      mov   ah, 09h
      int  21h

      mov   dx,  offset strReal
      smsw  cx
      ;jcxz lblReport
      test  cx, 1
      je lblReport
      mov  dx,  offset strProtected

lblReport:

      mov  ah, 09h
      int 21h

      mov   ax, 3567h
      int  21h
      mov   di, 0ah
      mov   si,  offset strEmmName
      mov   cx, 8
      cld
      repz  cmpsb

      jnz  lblEnd
      mov   ah, 09h
      mov   dx,  offset strEmmActive
      int  21h

lblEnd:
      mov   dx,  offset strWaitMsg
      mov   ah, 09h
      int  21h
      mov   ah, 08h
      int  21h
      mov   ax, 1104h
      mov   bl, 0
      int  10h
      mov   ax, 4c00h
      int  21h
;----------------------------------
     strEmmName       db  "EMMXXXX0"
     strEmmActive  db 0ah, 0dh, "EMM386 Active!$"
     strMsg   db  "CPU MODE Reportor V0.1b"
          db 0dh, 0ah
          db  "Copyright (c) "
     strMyname     db 0ah, 15h, 25h, 0dh, 00h, 042h
          db  " Apr 6, 2002. All rights reserved!"
          db  0ah, 0dh
              db  "CPU", 0b9h, 0a4h, 0d7h, 0f7h, 0c4h, 0a3h, 0cah, 0bdh, ": $"
     strReal  db  "Real$"
     strProtected  db  "Protected$"
     strWaitMsg    db 0dh, 0ah, "Press any key to end...$"

     huang1  db 04H, 4H, 3fH, 4H, 4H, 0ffH, 1H, 1fH, 11H, 1fH, 11H, 1fH, 10H, 4H, 18H, 60H
     huang2  db 040H, 50H, 0f8H, 40H, 44H, 0feH, 10H, 0f8H, 10H, 0f0H, 10H, 0f0H, 0H, 60H, 18H, 4H
     zhi1    db 01H, 1H, 1H, 0ffH, 1H, 1H, 1H, 3fH, 0H, 2H, 11H, 50H, 50H, 90H, 0fH, 0H
     zhi2    db 0H, 0H, 4H, 0feH, 0H, 0H, 10H, 0f8H, 0H, 0H, 80H, 84H, 12H, 12H, 0f0H, 0H
     bin1    db 0H, 20H, 11H, 0H, 0fcH, 0bH, 48H, 28H, 29H, 11H, 29H, 25H, 45H, 81H, 3H, 0H
     bin2    db 10H, 10H, 0f4H, 12H, 10H, 0feH, 10H, 50H, 50H, 70H, 50H, 48H, 48H, 6aH, 86H, 2H

     gong1  db 0H, 0H, 07fH, 1H, 1H, 1H, 1H, 1H, 1H, 1H, 1H, 1H,/
          01H, 0ffH, 0H, 0H
     gong2  db 0H, 08H, 0fcH, 0H, 0H, 0H, 0H, 0H, 0H, 0H, 0H, 0H, 04H,/
          0feH, 0H, 0H
     zhuo1  db 09H, 09H, 09H, 11H, 12H, 32H, 54H, 98H, 10H, 10H,/
          10H, 10H, 10H, 10H, 10H, 10H
     zhuo2  db 0H, 0H, 04H, 0feH, 80H, 80H, 90H, 0f8H, 80H, 80H, 88H,/
          0fcH, 80H, 80H, 80H, 80H
     mo1    db 11H, 11H, 1fH, 11H, 0fdH, 13H, 32H, 3bH, 56H, 53H, 90H,/
          1fH, 10H, 10H, 11H, 16H
     mo2    db 10H, 14H, 0feH, 10H, 18H, 0fcH, 08H, 0f8H, 08H, 0f8H,/
          40H, 0feH, 040H, 0b0H, 0eH, 04H
     shi1   db 0H, 0H, 0H, 0H, 0ffH, 0H, 0H, 3eH, 08H, 08H, 08H, 09H,/
          0eH, 70H, 20H, 0H
     shi2   db 80H, 0a0H, 90H, 84H, 0feH, 80H, 80H, 80H, 80H, 40H,/
          40H, 20H, 22H, 12H, 0aH, 04H
;=================================
cseg  ends
      end
相关文章
加快软盘操作速度的汇编程序源代码
加快软盘操作速度的汇编程序源代码
|
存储 SQL 缓存
手写操作系统(5)——CPU工作模式与虚拟地址(下)
手写操作系统(5)——CPU工作模式与虚拟地址
260 0
|
存储 缓存 Linux
手写操作系统(5)——CPU工作模式与虚拟地址(上)
手写操作系统(5)——CPU工作模式与虚拟地址
214 0
|
安全 编译器 程序员
CPU处理器模式与异常
CPU处理器模式与异常
685 0
|
Nacos
nacos 2.2.3集群模式下,leader节点,CPU打满,是什么原因?
nacos 2.2.3集群模式下,leader节点,CPU打满,是什么原因?
398 5
|
Nacos
nacos 2.2.3集群模式下,leader节点,CPU打满
nacos 2.2.3集群模式下,leader节点,CPU打满
197 1
|
Serverless 数据库
FC函数计算开启闲置模式以后解冻CPU时间过长
FC函数计算开启闲置模式以后解冻CPU时间过长问题
212 1
|
运维
查看调整cpu频率及模式
查看调整cpu频率及模式
531 2
|
C语言
start.S详解学习(一):设置 CPU 模式
start.S详解学习(一):设置 CPU 模式
202 0

热门文章

最新文章