我很高兴见到你......大家好......
我正在制作一个操作系统...... 今天,我制作了可以通过LBA读取硬盘扇区的引导加载程序。
我成功完成了没有任何错误,但我有一个问题。
这是我在教程后编写的代码。 (只是整个代码的一部分)
READ:
; Disk Address Packet (DAP)
mov al, 0x10 ; byte : Size of structure
mov [0x500], al
mov ax, 0x1 ; word : Sectors to read
mov [0x502], ax
mov eax, 0x08000
mov [0x504], eax ; Segment:Offset
mov eax, 1 ; qword : Number: Access for LBA
mov [0x508], eax
mov ax, 0x500
mov si, ax ; DAP's Segment:Offset records to si:ds
mov ax, 0
mov ds, ax
mov ah, 0x42 ; LBA Read Order
mov dl, 0x80 ; 0x80 = First Hard Disk (HDD)
int 0x13 ; Execute
jc READ ; Try again if failed.
我想知道为什么mov si, ax
意味着"记录到si:ds" ...
Isn&#t; t mov si, ax
表示"记录到" ds:si"",not" si:ds"?
我真的很想知道这部分...... 为什么代码意味着什么?我学错了吗???
感谢您阅读我的问题...... 我对你的回答非常满意!
(抱歉我的英语不好......)