Tag: 16位

如何使用“x / i $ pc”反汇编GDB中的16位x86引导扇区代码? 它被视为32位

例如,用BIOS打印到屏幕main.asm的引导扇区: org 0x7c00 bits 16 cli mov ax, 0x0E61 int 0x10 hlt times 510 – ($-$$) db 0 dw 0xaa55 然后: nasm -o main.img main.asm qemu-system-i386 -hda main.img -S -s & gdb -ex 'target remote localhost:1234' \ -ex 'break *0x7c00' \ -ex 'continue' \ -ex 'x/3i $pc' 我得到: 0x7c00: cli 0x7c01: mov $0x10cd0e61,%eax 0x7c06: hlt […]

如何确定一个Pythonvariables的types?

我如何看到一个variables的types,无论是无符号的32位,有符号的16位等? 我如何查看?

引导加载程序不会跳转到内核代码

我正在写小操作系统 – 用于练习。 我开始使用bootloader。 我想创build一个运行在16位真实模式(现在)的小型命令系统。 我已经创build了bootloader来重置驱动器,然后在bootloader之后加载扇区。 问题是因为jmp函数没有实际发生。 我试图加载下一个扇区在0x7E00(我不完全确定如何使用es:bx指向地址,这可能是一个问题,我相信它的地址:偏移量),就在bootloader之后。 这是代码: ; ; SECTOR 0x0 ; ;dl is number of harddrive where is bootloader org 0x7C00 bits 16 ;reset hard drive xor ah,ah int 0x13 ;read sectors clc mov bx,0x7E00 mov es,bx xor bx,bx mov ah,0x02 ;function mov al,0x1 ;sectors to read mov ch,0x0 ;tracks mov cl,0x1 […]