问题描述
我正在尝试使用此代码打印存储在ebx中的硬件的vendorID和deviceid,然后将其引导:
_start:
xor eax,eax
mov eax,0x80000000
xor ecx,ecx
.main
mov dx,0x0cf8
out dx,eax
mov dx,0x0cfc
mov ebp,eax
in eax,dx
cmp eax,0xFFFFFFFF ;eax will fill with 0xFFFFFFFF if no device founded on bus
je .count
xor ebx,ebx
mov [ebx],eax ;copy the vendor and Device ID
add ebx,0x0004
mov [ebx],ebx ;their locations
mov eax,ebx
add eax,0x00000800 ; next device
inc ecx
cmp ecx,0x20
je break
loop main
.count
inc ecx
jmp main
.break
mov rax,1
int 0x80
times 510-($-$$) db 0
dw 0xaa55
您看到的值存储在ebx中,但是我在覆盖和移动光标(INT 10
和0x0e
)时遇到问题
第一季度:如何打印这些值?
第二季度:如何查找硬件的实际内存地址?(例如,我的网卡地址为0x7F800000。(可在Windows 10系统信息中找到))
代码资源:https://www.youtube.com/watch?v=NgzT1JfBUr0&t=142s
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)