diff options
| author | Matt Borgerson <contact@mborgerson.com> | 2019-12-17 19:47:47 -0700 |
|---|---|---|
| committer | Matt Borgerson <contact@mborgerson.com> | 2019-12-17 19:47:47 -0700 |
| commit | 77eb93ce4eaf9667e1261fa7be0a9e9f8cc4d949 (patch) | |
| tree | 98752e56525f9978d033beaf38f1c1471cd5e09b /x86/gdbstub_int.nasm | |
| parent | af1a586beb952808238834a4d65531936a97f0de (diff) | |
| download | gdbstub-77eb93ce4eaf9667e1261fa7be0a9e9f8cc4d949.tar.gz | |
Rename x86 dir to arch_x86
Diffstat (limited to 'x86/gdbstub_int.nasm')
| -rw-r--r-- | x86/gdbstub_int.nasm | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/x86/gdbstub_int.nasm b/x86/gdbstub_int.nasm deleted file mode 100644 index 2495971..0000000 --- a/x86/gdbstub_int.nasm +++ /dev/null @@ -1,110 +0,0 @@ -; -; Copyright (c) 2016-2019 Matt Borgerson -; -; Permission is hereby granted, free of charge, to any person obtaining a copy -; of this software and associated documentation files (the "Software"), to deal -; in the Software without restriction, including without limitation the rights -; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -; copies of the Software, and to permit persons to whom the Software is -; furnished to do so, subject to the following conditions: -; -; The above copyright notice and this permission notice shall be included in -; all copies or substantial portions of the Software. -; -; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -; SOFTWARE. -; - -bits 32 - -%define NUM_HANDLERS 32 - -section .data -global dbg_int_handlers - -; Generate table of handlers -dbg_int_handlers: -%macro handler_addr 1 - dd dbg_int_handler_%1 -%endmacro -%assign i 0 -%rep NUM_HANDLERS - handler_addr i - %assign i i+1 -%endrep - -section .text -extern dbg_int_handler - -%macro int 1 -dbg_int_handler_%1: - push 0 ; Dummy Error code - push %1 ; Interrupt Vector - jmp dbg_int_handler_common -%endmacro - -%macro inte 1 -dbg_int_handler_%1: - ; Error code already on stack - push %1 ; Interrupt Vector - jmp dbg_int_handler_common -%endmacro - -; Generate Interrupt Handlers -%assign i 0 -%rep NUM_HANDLERS - %if (i == 8) || ((i >= 10) && (i <= 14)) || (i == 17) - inte i - %else - int i - %endif -%assign i i+1 -%endrep - -; Common Interrupt Handler -dbg_int_handler_common: - pushad - push ds - push es - push fs - push gs - push ss - mov ebp, esp - - ; Stack: - ; - EFLAGS - ; - CS - ; - EIP - ; - ERROR CODE - ; - VECTOR - ; - EAX - ; - ECX - ; - EDX - ; - EBX - ; - ESP - ; - EBP - ; - ESI - ; - EDI - ; - DS - ; - ES - ; - FS - ; - GS - ; - SS - - push ebp - call dbg_int_handler - - mov esp, ebp - pop ss - pop gs - pop fs - pop es - pop ds - popad - add esp, 8 ; Pop error & vector - iret |
