Browse Source

feat: ajout de la commande REGS permettant d'afficher le contenu des registres processeurs

feature/test
Nicolas Hordé 17 years ago
parent
commit
2791d5868e
  1. 133
      commande/commande.asm

133
commande/commande.asm

@ -261,7 +261,93 @@ okchanged:
killing db 'Fermeture du processus %0\l',0
errorkilling db '\c04Impossible de fermer ce processus',0
code_irq:
code_stack:
code_dump:
code_regs:
call [cs:savecontext],offset allregs
push 6
push eax
push eax
mov ax,[word ptr allregs.sss]
push 6
push eax
push eax
mov ax,[word ptr allregs.sgs]
push 6
push eax
push eax
mov ax,[word ptr allregs.sfs]
push 6
push eax
push eax
mov ax,[word ptr allregs.ses]
push 6
push eax
push eax
mov ax,[word ptr allregs.sds]
push 6
push eax
push eax
mov ax,[word ptr allregs.scs]
xor eax,eax
push 10
pushd [dword ptr allregs.seip]
pushd [dword ptr allregs.seip]
push 10
pushd [dword ptr allregs.sesp]
pushd [dword ptr allregs.sesp]
push 10
pushd [dword ptr allregs.sebp]
pushd [dword ptr allregs.sebp]
push 10
pushd [dword ptr allregs.sedi]
pushd [dword ptr allregs.sedi]
push 10
pushd [dword ptr allregs.sesi]
pushd [dword ptr allregs.sesi]
push 10
pushd [dword ptr allregs.sedx]
pushd [dword ptr allregs.sedx]
push 10
pushd [dword ptr allregs.secx]
pushd [dword ptr allregs.secx]
push 10
pushd [dword ptr allregs.sebx]
pushd [dword ptr allregs.sebx]
push 10
pushd [dword ptr allregs.seax]
pushd [dword ptr allregs.seax]
push 10
pushd [dword ptr allregs.seflags]
pushd [dword ptr allregs.seflags]
call [cs:print],offset registershow
ret
registershow db '\l\c02Liste des registres du Microprocesseur\l\l\c07'
db '\c04CPU\h30FPU\c07\l'
db 'EFGS: 0x%hD : %w |\h32ST(0) :\l'
db 'EAX : 0x%hD : %w |\h32ST(1) :\l'
db 'EBX : 0x%hD : %w |\h32ST(2) :\l'
db 'ECX : 0x%hD : %w |\h32ST(3) :\l'
db 'EDX : 0x%hD : %w |\h32ST(4) :\l'
db 'ESI : 0x%hD : %w |\h32ST(5) :\l'
db 'EDI : 0x%hD : %w |\h32ST(6) :\l'
db 'EBP : 0x%hD : %w |\h32ST(7) :\l'
db 'ESP : 0x%hD : %w |\h32\l'
db 'EIP : 0x%hD : %w |\h32\l'
db 'CS : 0x%hW : %w |\h32\l'
db 'DS : 0x%hW : %w |\h32\l'
db 'ES : 0x%hW : %w |\h32\l'
db 'FS : 0x%hW : %w |\h32\l'
db 'GS : 0x%hW : %w |\h32\l'
db 'SS : 0x%hW : %w |\h32\l',0
allregs regs <>
code_irqs:
call [cs:mbfind],offset interruptionbloc
jc erroronint
call [cs:print],offset irqmsg1
@ -562,19 +648,22 @@ fr: db '1', 02, '&', 02
db 00, 00, 00, 00
commands dw str_exit ,code_exit ,syn_exit ,help_exit
dw str_version,code_version,syn_version,help_version
dw str_cls ,code_cls ,syn_cls ,help_cls
dw str_reboot ,code_reboot ,syn_reboot ,help_reboot
dw str_command,code_command,syn_command,help_command
dw str_mode ,code_mode ,syn_mode ,help_mode
dw str_dir ,code_dir ,syn_dir ,help_dir
dw str_refresh ,code_refresh ,syn_refresh ,help_refresh
dw str_cd ,code_cd ,syn_cd ,help_cd
dw str_mem ,code_mem ,syn_mem ,help_mem
dw str_kill ,code_kill ,syn_kill ,help_kill
dw str_int ,code_int ,syn_int ,help_int
dw str_irq ,code_irq,syn_irq ,help_irq
dw 0
dw str_version,code_version,syn_version,help_version
dw str_cls ,code_cls ,syn_cls ,help_cls
dw str_reboot ,code_reboot ,syn_reboot ,help_reboot
dw str_command,code_command,syn_command,help_command
dw str_mode ,code_mode ,syn_mode ,help_mode
dw str_dir ,code_dir ,syn_dir ,help_dir
dw str_refresh ,code_refresh ,syn_refresh ,help_refresh
dw str_cd ,code_cd ,syn_cd ,help_cd
dw str_mem ,code_mem ,syn_mem ,help_mem
dw str_kill ,code_kill ,syn_kill ,help_kill
dw str_int ,code_int ,syn_int ,help_int
dw str_irqs ,code_irqs,syn_irqs ,help_irqs
dw str_regs ,code_regs,syn_regs ,help_regs
dw str_stack,code_stack,syn_stack,help_stack
dw str_dump,code_dump,syn_dump,help_dump
dw 0
str_exit db 'QUIT',0
str_version db 'VERS',0
@ -588,7 +677,10 @@ str_cd db 'CD',0
str_mem db 'MEM',0
str_kill db 'KILL',0
str_int db 'INT',0
str_irq db 'IRQS',0
str_irqs db 'IRQS',0
str_regs db 'REGS',0
str_stack db 'STACK',0
str_dump db 'DUMP',0
syn_exit db 0
syn_version db 0
@ -602,7 +694,10 @@ syn_cd db '?',0
syn_mem db 0
syn_kill db '?',0
syn_int db 'FFh',0
syn_irq db 0
syn_irqs db 0
syn_regs db 0
syn_stack db 0
syn_dump db '?',0
help_exit db 'Permet de quitter l''interpreteur',0
help_version db 'Affiche la version de COS',0
@ -616,7 +711,10 @@ help_cd db 'Change le repertoire courant',0
help_mem db 'Affiche le plan de la memoire',0
help_kill db 'Termine le processus cible',0
help_int db 'Affiche des informations sur l''interruption',0
help_irq db 'Affiche des informations sur les IRQs',0
help_irqs db 'Affiche des informations sur les IRQs',0
help_regs db 'Affiche les registres du microprocesseur',0
help_stack db 'Affiche la pile systeme',0
help_dump db 'Affiche le contenu de la memoire',0
derror db '\c04Erreur de Syntaxe !',0
error_syntax db '\c04La commande ou l''executable n''existe pas ! F1 pour %0',0
@ -652,6 +750,7 @@ use SYSTEME,mbfree
use SYSTEME,isenableirq
use SYSTEME,isinserviceirq
use SYSTEME,isrequestirq
use SYSTEME,savecontext
use STR0.LIB,uppercase
use STR0.LIB,evalue
use STR0.LIB,copy

Loading…
Cancel
Save