?? kprint.asm
字號:
;-------------------------------------------------------------------------------;;;; IN: AL - number, EDI - bufferPtr[2];;;; OUT: hex number in ptrBuffer;;;; MODIFY: AL, CL, EBX, ESI, EDIPrintHexByte: mov ebx, hexTab mov cl, al shr al, 4 xlatb stosb mov al, cl and al, 0x0F xlatb stosb ret;;;; IN: AX - number, EDI - bufferPtr[4];;;; OUT: hex number in ptrBuffer;;;; MODIFY: AL, CX, EBX, ESI, EDIPrintHexWord: mov ch, al mov al, ah call PrintHexByte mov al, ch jmp PrintHexByte;;;; IN: EAX - number, EDI - bufferPtr[4];;;; OUT: hex number in ptrBuffer;;;; MODIFY: EAX, CX, EBX, ESI, EDIPrintHexDword: push ax shr eax, 0x10 call PrintHexWord pop ax jmp PrintHexWordhexTab db "0123456789ABCDEF";-------------------------------------------------------------------------------;;;; IN: ESI - string, EDI - screenPtr, AH - attribute;;;; OUT: text on screen;;;; MODIFY: ESI, EDI, ALPrintText: lodsb and al, al jz PrintText0 stosb mov al, ah stosb jmp short PrintTextPrintText0: ret;-------------------------------------------------------------------------------;;;;kprhexPos dd 0xB8000kprhexColor db 15kprhexbufD db "...."kprhexbufW db ".."kprhexbufB db ".." db 0PrintHexDwordScreen: pushad mov edi, kprhexbufD call PrintHexDword mov esi, kprhexbufDPrintHexOnScreen: mov ah, [kprhexColor] mov edi, [kprhexPos] call PrintText mov edi, [kprhexPos] add edi, 160 mov [kprhexPos], edi popad retPrintHexWordScreen: pushad mov edi, kprhexbufW call PrintHexWord mov esi, kprhexbufW jmp PrintHexOnScreenPrintHexByteScreen: pushad mov edi, kprhexbufB call PrintHexByte mov esi, kprhexbufB jmp PrintHexOnScreen
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -