mirror of
https://github.com/yourtion/30dayMakeOS.git
synced 2026-02-06 03:23:21 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
984b2886d0 | ||
|
|
a381fbedc3 |
@@ -30,6 +30,7 @@ void asm_inthandler27(void);
|
||||
void asm_inthandler2c(void);
|
||||
unsigned int memtest_sub(unsigned int start, unsigned int end);
|
||||
void farjmp(int eip, int cs);
|
||||
void farcall(int eip, int cs);
|
||||
void asm_cons_putchar(void);
|
||||
|
||||
/* fifo.c */
|
||||
|
||||
@@ -256,7 +256,7 @@ void cmd_hlt(struct CONSOLE *cons, int *fat)
|
||||
p = (char *) memman_alloc_4k(memman, finfo->size);
|
||||
file_loadfile(finfo->clustno, finfo->size, p, fat, (char *) (ADR_DISKIMG + 0x003e00));
|
||||
set_segmdesc(gdt + 1003, finfo->size - 1, (int) p, AR_CODE32_ER);
|
||||
farjmp(0, 1003 * 8);
|
||||
farcall(0, 1003 * 8);
|
||||
memman_free_4k(memman, (int) p, finfo->size);
|
||||
} else {
|
||||
/*没有找到文件的情况*/
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
[BITS 32]
|
||||
MOV AL,'A'
|
||||
CALL 0xbe3
|
||||
fin:
|
||||
HLT
|
||||
JMP fin
|
||||
MOV AL,'h'
|
||||
CALL 2*8:0xbe8
|
||||
MOV AL,'e'
|
||||
CALL 2*8:0xbe8
|
||||
MOV AL,'l'
|
||||
CALL 2*8:0xbe8
|
||||
MOV AL,'l'
|
||||
CALL 2*8:0xbe8
|
||||
MOV AL,'o'
|
||||
CALL 2*8:0xbe8
|
||||
RETF
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
GLOBAL _asm_inthandler20, _asm_inthandler21
|
||||
GLOBAL _asm_inthandler27, _asm_inthandler2c
|
||||
GLOBAL _memtest_sub
|
||||
GLOBAL _farjmp
|
||||
GLOBAL _farjmp, _farcall
|
||||
GLOBAL _asm_cons_putchar
|
||||
EXTERN _inthandler20, _inthandler21
|
||||
EXTERN _inthandler27, _inthandler2c
|
||||
@@ -213,6 +213,10 @@ _farjmp: ; void farjmp(int eip, int cs);
|
||||
JMP FAR [ESP+4] ; eip, cs
|
||||
RET
|
||||
|
||||
_farcall: ; void farcall(int eip, int cs);
|
||||
CALL FAR [ESP+4] ; eip, cs
|
||||
RET
|
||||
|
||||
_asm_cons_putchar:
|
||||
PUSH 1
|
||||
AND EAX,0xff ; 将AH和EAX的高位置0,将EAX置为已存入字符编码的状态
|
||||
@@ -220,4 +224,4 @@ _asm_cons_putchar:
|
||||
PUSH DWORD [0x0fec] ; 读取内存并PUSH该值
|
||||
CALL _cons_putchar
|
||||
ADD ESP,12 ; 将栈中的数据丢弃
|
||||
RET
|
||||
RETF
|
||||
|
||||
Reference in New Issue
Block a user