home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pcmagazi / 1992 / 20 / virt8086 / virt8086.asm next >
Assembly Source File  |  1991-10-14  |  1KB  |  38 lines

  1.          DOSSEG
  2.          .MODEL  SMALL
  3.          .STACK  256
  4.          .386P
  5.          IDEAL
  6.  
  7. SEGMENT  MYDATA  USE16 PARA 'DATA'
  8. PROTNOPG DB      'CPU IS RUNNING IN PROTECTED MODE...PAGING DISABLED$'
  9. PROTPG   DB      'CPU IS RUNNING IN PROTECTED MODE...PAGING ENABLED$'
  10. REALMODE DB      'CPU IS RUNNING IN REAL MODE$'
  11. ENDS     MYDATA
  12.  
  13. SEGMENT  MYCODE  USE16 PARA 'CODE'
  14.          ASSUME  CS:MYCODE              ;address code segment
  15. TESTPROT:
  16.          MOV     AX,MYDATA
  17.          MOV     DS,AX
  18.          ASSUME  DS:MYDATA              ;address data segment
  19.          MOV     EAX,CR0                ;get control register 0
  20.          TEST    EAX,00000001H          ;If   Protection Enablement off
  21.          JZ      GOTREAL                ;Then CPU in Real Mode
  22.          MOV     DX, OFFSET PROTNOPG
  23.          TEST    EAX,80000000H          ;if   Paging Bit off
  24.          JZ      WRITEIT                ;Then only segment protection
  25.          MOV     DX, OFFSET PROTPG      ;Else page level protection
  26.          JMP     WRITEIT
  27. GOTREAL:
  28.          MOV     DX, OFFSET REALMODE
  29. WRITEIT:
  30.          MOV     AH,9                   ;Write mode status
  31.          INT     21H
  32.          MOV     AH,4CH                 ;Return to caller
  33.          INT     21H
  34. ENDS     MYCODE
  35.          END      TESTPROT
  36.  
  37.  
  38.