diff --git a/04_day/bootpack.c b/04_day/bootpack.c index 2e5f40d..cda3b75 100644 --- a/04_day/bootpack.c +++ b/04_day/bootpack.c @@ -1,12 +1,14 @@ void io_hlt(void); -void write_mem8(int addr, int data); void HariMain(void) { - int i; /* 声明变量,i是32位整数 */ + int i; /* 声明变量i,i是32位整数 */ + char *p; /* 声明变量p、用于BYTE [...]地址 */ for (i = 0xa0000; i <= 0xaffff; i++) { - write_mem8(i, i & 0x0f); + p = (char *)i; + *p = i & 0x0f; + /* 替代write_mem8(i, i & 0x0f); */ } for (;;) { diff --git a/04_day/naskfunc.nas b/04_day/naskfunc.nas index d02201d..c7022eb 100644 --- a/04_day/naskfunc.nas +++ b/04_day/naskfunc.nas @@ -6,16 +6,10 @@ [BITS 32] ; 3制作32位模式用的机器语言 [FILE "naskfunc.nas"] ; 文件名 - GLOBAL _io_hlt,_write_mem8 + GLOBAL _io_hlt [SECTION .text] _io_hlt: ; void io_hlt(void); HLT RET - -_write_mem8: ; void write_mem8(int addr, int data); - MOV ECX,[ESP+4] ; [ESP+4]中存放的是地址,将其读入ECX - MOV AL,[ESP+8] ; [ESP+8]中存放的是数据,将其读入AL - MOV [ECX],AL - RET