From 39f6fd15a82d02fdea69e5e82e7c7476b5d9b0e2 Mon Sep 17 00:00:00 2001 From: Yourtion Date: Fri, 5 Sep 2014 16:35:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BB=E5=8F=9618=E6=89=87=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 03_day/ipl.nas | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/03_day/ipl.nas b/03_day/ipl.nas index 87d8343..b88e92e 100644 --- a/03_day/ipl.nas +++ b/03_day/ipl.nas @@ -34,7 +34,7 @@ entry: MOV SP,0x7c00 MOV DS,AX -; ディスクを読む +; 读取磁盘 MOV AX,0x0820 MOV ES,AX @@ -42,7 +42,9 @@ entry: MOV DH,0 ; 磁头0 MOV CL,2 ; 扇区2 +readloop: MOV SI,0 ; 记录失败次数寄存器 + retry: MOV AH,0x02 ; AH=0x02 : 读入磁盘 MOV AL,1 ; 1个扇区 @@ -57,6 +59,13 @@ retry: MOV DL,0x00 ; A驱动器 INT 0x13 ; 重置驱动器 JMP retry +next: + MOV AX,ES ; 把内存地址后移0x200(512/16十六进制转换) + ADD AX,0x0020 + MOV ES,AX ; ADD ES,0x020因为没有ADD ES,只能通过AX进行 + ADD CL,1 ; 往CL里面加1 + CMP CL,18 ; 比较CL与18 + JBE readloop ; CL <= 18 跳转到readloop ; 读取完毕,无其他指令进入休眠