瀏覽代碼

signed 32bit debug print

IDT
Jakob Kjær-Kammersgaard 5 年之前
父節點
當前提交
3b376c6a8a
共有 1 個檔案被更改,包括 19 行新增4 行删除
  1. +19
    -4
      go32bit.nasm

+ 19
- 4
go32bit.nasm 查看文件

@ -378,12 +378,12 @@ WriteProtectedModeString:
rep stosw
lea edi, [VIDEO + (80*24 + 1)*2]
mov eax, dword [Px]
shr eax, 6
sar eax, 6
call StringifyEax10
lea edi, [VIDEO + (80*24 + 10)*2]
mov eax, dword [Py]
shr eax, 6
sar eax, 6
call StringifyEax10
add [ColorOffset], dword 1
@ -406,20 +406,32 @@ StringifyEax10:
xor ecx, ecx ; Digit count starts at 0
mov [.sign], byte ' '
test eax, eax
jns .loop_divide
neg eax
mov [.sign], byte '-'
.loop_divide: ; finds digits and pushes them to stack
test eax, eax
jz .break_loop_divide
xor edx, edx
div ebx ; edx = (edx:eax)%ebx, eax = (edx:eax)/ebx
idiv ebx ; edx = (edx:eax)%ebx, eax = (edx:eax)/ebx
inc ecx ; Increase digit count
mov byte [.buffer + ecx], dl
jmp .loop_divide
.break_loop_divide:
; dec ecx
add edi, 16
add edi, 20
sub edi, ecx
sub edi, ecx
mov ah, 0x0f
mov al, byte [.sign]
stosw
.loop_print:
test ecx, ecx
jz .break_loop_print
@ -429,10 +441,13 @@ StringifyEax10:
stosw
dec ecx
jmp .loop_print
.break_loop_print:
popad
ret
.buffer times 40 db 0
.sign db ' '
;;;;;;;;;;;;;;;;;;;;;;;;

Loading…
取消
儲存