Compare commits

...

3 Commits

Author SHA1 Message Date
Yourtion
c05803edb7 另外的写法 2014-09-10 15:54:04 +08:00
Yourtion
26efbb4a1b 使用指针替代write_mem8 2014-09-10 15:25:55 +08:00
Yourtion
cbdb86f96e 生成条纹 2014-09-10 15:02:32 +08:00
2 changed files with 7 additions and 11 deletions

View File

@@ -1,12 +1,14 @@
void io_hlt(void);
void write_mem8(int addr, int data);
void HariMain(void)
{
int i; /* 声明变量i是32位整数 */
int i; /* 声明变量ii是32位整数 */
char *p; /* 声明变量p、用于BYTE [...]地址 */
for (i = 0xa0000; i <= 0xaffff; i++) {
write_mem8(i, 15); /* MOV BYTE [i],15 */
p = (char *) 0xa0000; /* 地址变量赋值 */
for (i = 0; i <= 0xffff; i++) {
*(p + i) = i & 0x0f;
}
for (;;) {

View File

@@ -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