mirror of
https://github.com/yourtion/30dayMakeOS.git
synced 2026-02-03 10:03:20 +08:00
当心寄存器
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
[INSTRSET "i486p"]
|
||||
[BITS 32]
|
||||
MOV AL,'h'
|
||||
INT 0x40
|
||||
MOV AL,'e'
|
||||
INT 0x40
|
||||
MOV AL,'l'
|
||||
INT 0x40
|
||||
MOV AL,'l'
|
||||
INT 0x40
|
||||
MOV AL,'o'
|
||||
INT 0x40
|
||||
RETF
|
||||
MOV ECX,msg
|
||||
putloop:
|
||||
MOV AL,[CS:ECX]
|
||||
CMP AL,0
|
||||
JE fin
|
||||
INT 0x40
|
||||
ADD ECX,1
|
||||
JMP putloop
|
||||
fin:
|
||||
RETF
|
||||
msg:
|
||||
DB "hello",0
|
||||
@@ -219,10 +219,12 @@ _farcall: ; void farcall(int eip, int cs);
|
||||
|
||||
_asm_cons_putchar:
|
||||
STI
|
||||
PUSHAD
|
||||
PUSH 1
|
||||
AND EAX,0xff ; 将AH和EAX的高位置0,将EAX置为已存入字符编码的状态
|
||||
PUSH EAX
|
||||
PUSH DWORD [0x0fec] ; 读取内存并PUSH该值
|
||||
CALL _cons_putchar
|
||||
ADD ESP,12 ; 将栈中的数据丢弃
|
||||
POPAD
|
||||
IRETD
|
||||
|
||||
Reference in New Issue
Block a user