Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;mapa virtual
- ; |-------------|0x000000
- ; | |
- ; | kernel |
- ; | |0x0fffff
- ; |-------------|0x100000
- ; |codigo tar n |
- ; |-------------|0x100fff
- ; | data tar n |
- ; |-------------|0x101fff
- ; | pila nivel 0|
- ; |-------------|0x102fff
- ; | |
- ; | |
- ;pila nivel 0 si hay error code
- ; |------------|<--esp
- ; | error code |
- ; |------------|
- ; | eip |
- ; |------------|
- ; | cs |
- ; |------------|
- ; | eflags |
- ; |------------|
- ; | esp3 |
- ; |------------|
- ; | ss |
- ; |------------|
- _int_sin_errorcode:
- mov eax, actual
- xor ebx, ebx
- .resto:
- xor ecx, ecx
- ;xor con todos los demas regs para reiniciarlos
- ;modifico eip
- mov [esp], 0x100000
- ;Modifico cs
- mov [esp+4] cod_3<<3
- ;Modifico eflags
- Mov [esp+8], 0x202
- ;modifico esp3
- mov [esp+12],0x102000
- ; Modifico ss
- Mov [esp+16] datos_3<<3
- ;modifico los demas registros
- mov ax datos_3<<3
- mov gs ax
- ;asi con fs,ds,es
- iret
- _int_con_errorcode:
- mov eax, actual
- ;guardo en ebx el error code
- pop ebx
- jmp .resto
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement