【原创】报告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   bpoffset huang1
      int  10h
      mov   dx, 0c6h
      mov   bpoffset huang2
      int  10h
      mov   dx, 0d6h
      mov   bpoffset zhi1
      int  10h
      mov   dx, 0beh
      mov   bpoffset zhi2
      int  10h
      mov   dx, 0b1h
      mov   bpoffset bin1
      int  10h
      mov   dx, 0f3h
      mov   bpoffset bin2
      int  10h
      mov   dx, 0b9h
      mov   bpoffset gong1
      int  10h
      mov   dx, 0a4h
      mov   bpoffset gong2
      int  10h
      mov   dx, 0d7h
      mov   bpoffset zhuo1
      int  10h
      mov   dx, 0f7h
      mov   bpoffset zhuo2
      int  10h
      mov   dx, 0c4h
      mov   bpoffset mo1
      int  10h
      mov   dx, 0a3h
      mov   bpoffset mo2
      int  10h
      mov   dx, 0cah
      mov   bpoffset shi1
      int  10h
      mov   dx, 0bdh
      mov   bpoffset shi2
      int  10h
      mov   bxoffset strMyname
      mov   cx, 6

lblUnlock:

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

      mov   dxoffset strMsg
      mov   ah, 09h
      int  21h

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

lblReport:

      mov  ah, 09h
      int 21h

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

      jnz  lblEnd
      mov   ah, 09h
      mov   dxoffset strEmmActive
      int  21h

lblEnd:
      mov   dxoffset 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 Start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫郢剑侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值