⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showreg.asm

📁 显示80X86的寄存器
💻 ASM
字号:
;***************************
;文件:ShowReg.asm         *
;功能:显示80X86的寄存器   *
;***************************

.386P
        DATA  SEGMENT   USE16
       BEGIN  LABEL     BYTE
         _CS  DB        'CS =    ',0DH,0AH
         _IP  DB        'IP =    ',09H
         _DS  DB        'DS =    ',0DH,0AH
         _ES  DB        'ES =    ',09H
         _FS  DB        'FS =    ',0DH,0AH
         _GS  DB        'GS =    ',09H
         _SS  DB        'SS =    ',0DH,0AH
        _ESP  DB        'ESP=        ',09H
        _EAX  DB        'EAX=        ',0DH,0AH
        _EBX  DB        'EBX=        ',09H
        _ECX  DB        'ECX=        ',0DH,0AH
        _EDX  DB        'EDX=        ',09H
        _ESI  DB        'ESI=        ',0DH,0AH
        _EDI  DB        'EDI=        ',09H
        _EBP  DB        'EBP=        ',0DH,0AH
	
        _CR0  DB        'CR0=        ',09H
        _CR2  DB        'CR2=        ',0DH,0AH
        _CR3  DB        'CR3=        ',09H
        _DR0  DB        'DR0=        ',0DH,0AH
        _DR1  DB        'DR1=        ',09H
        _DR2  DB        'DR2=        ',0DH,0AH
        _DR3  DB        'DR3=        ',09H
        _DR6  DB        'DR6=        ',0DH,0AH
        _DR7  DB        'DR7=        ',09H
	
        _EFL  DB        'EFL=        ',0DH,0AH
	
       _LDTR  DB        'LDTR=    ',0DH,0AH
       _GDTR  DB        'GDTR=            ',0DH,0AH
       _IDTR  DB        'IDTR=            ',09H
              DB        '$'
       DIGIT  DB        '0123456789ABCDEF'
        DATA  ENDS
;++++++++++++++++++++++++++++++++
        CODE  SEGMENT   USE16
              ASSUME    CS:CODE,DS:DATA,ES:DATA
      START:
              MOV       AX,DATA
              MOV       DS,AX
              MOV       ES,AX

              MOV       AX,CS
              LEA       DI,[_CS+4]
              CALL      COMPUTE16
              MOV       AX,DS
              LEA       DI,[_DS+4]
              CALL      COMPUTE16
              MOV       AX,ES
              LEA       DI,[_ES+4]
              CALL      COMPUTE16
              MOV       AX,FS
              LEA       DI,[_FS+4]
              CALL      COMPUTE16
              MOV       AX,GS
              LEA       DI,[_GS+4]
              CALL      COMPUTE16
              MOV       AX,SS
              LEA       DI,[_SS+4]
              CALL      COMPUTE16

              CALL      NEXT
       NEXT:
              POP       AX
              LEA       DI,[_IP+4]
              CALL      COMPUTE16
	
	
              MOV       EAX,EAX
              LEA       DI,[_EAX+4]
              CALL      COMPUTE32
              MOV       EAX,EBX
              LEA       DI,[_EBX+4]
              CALL      COMPUTE32
              MOV       EAX,ECX
              LEA       DI,[_ECX+4]
              CALL      COMPUTE32
              MOV       EAX,EDX
              LEA       DI,[_EDX+4]
              CALL      COMPUTE32
              MOV       EAX,ESI
              LEA       DI,[_ESI+4]
              CALL      COMPUTE32
              MOV       EAX,EDI
              LEA       DI,[_EDI+4]
              CALL      COMPUTE32
              MOV       EAX,EBP
              LEA       DI,[_EBP+4]
              CALL      COMPUTE32
              MOV       EAX,ESP
              LEA       DI,[_ESP+4]
              CALL      COMPUTE32
			
              MOV       EAX,CR0
              LEA       DI,[_CR0+4]
              CALL      COMPUTE32
              MOV       EAX,CR2
              LEA       DI,[_CR2+4]
              CALL      COMPUTE32
              MOV       EAX,CR3
              LEA       DI,[_CR3+4]
              CALL      COMPUTE32

              MOV       EAX,DR0
              LEA       DI,[_DR0+4]
              CALL      COMPUTE32
              MOV       EAX,DR1
              LEA       DI,[_DR1+4]
              CALL      COMPUTE32
              MOV       EAX,DR2
              LEA       DI,[_DR2+4]
              CALL      COMPUTE32
              MOV       EAX,DR3
              LEA       DI,[_DR3+4]
              CALL      COMPUTE32
              MOV       EAX,DR6
              LEA       DI,[_DR6+4]
              CALL      COMPUTE32
              MOV       EAX,DR7
              LEA       DI,[_DR7+4]
              CALL      COMPUTE32
	
              PUSHFD
              POP       EAX
              LEA       DI,[_EFL+4]
              CALL      COMPUTE32
	
;   sldt ax
;	lea di,[_LDTR+5]
;	call Compute16
	
              PUSH      EAX
              PUSH      AX
              SGDT      [ESP]
              POP       AX
              LEA       DI,[_GDTR+5]
              CALL      COMPUTE16
              ADD       DI,4
              POP       EAX
              CALL      COMPUTE32
	
              PUSH      EAX
              PUSH      AX
              SIDT      [ESP]
              POP       AX
              LEA       DI,[_IDTR+5]
              CALL      COMPUTE16
              ADD       DI,4
              POP       EAX
              CALL      COMPUTE32
	
              MOV       AH,9
              MOV       DX,OFFSET BEGIN
              INT       21H
              MOV       AH,4CH
              INT       21H
	
  COMPUTE32:
              PUSHAD
              MOV       BX,OFFSET DIGIT
              MOV       CX,8
              CLD
      AGAIN:
              ROL       EAX,4
              PUSH      EAX
              AND       EAX,0FH
              XLAT
              STOSB
              POP       EAX
              LOOP      AGAIN
              POPAD
              RET
  COMPUTE16:
              PUSHAD
              MOV       BX,OFFSET DIGIT
              MOV       CX,4
              CLD
     AGAIN1:
              ROL       AX,4
              PUSH      AX
              AND       AX,0FH
              XLAT
              STOSB
              POP       AX
              LOOP      AGAIN1
              POPAD
              RET
        CODE  ENDS
              END       START
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -