[Intel汇编-NASM]软中断以及BIOS中断调用

1. 

			org		0x7C00

			jmp		start

GDT_BEG:
DESC_SG_NULL	dd	0x00000000, 0x00000000
DESC_SG_CODE	dd	0x7C0001FF, 0x00409800
DESC_SG_VIDEO	dd	0x8000FFFF, 0x0040920B
DESC_SG_STACK	dd	0x00007A00, 0x00409600
GDT_END:

GDT_SIZE_DWORD	equ	(GDT_END - GDT_BEG) / 4

GDTR:	; 以下48位内容需要加载到全局描述符表寄存器gdtr中
GDT_BOUND		dw	GDT_END - GDT_BEG - 1	; 低16位是GDT的界限(即GDT总共多少字节)
											; 如果把GDT看做以字节为单位的数组,则下标从0开始
											; 所以该项为GDT总字节数减1
											; 本程序总共有4个描述符,GDT每个表项都占8字节
GDT_BASE		dd	0x7E00			; GDT加载在内存中的起始物理地址
									; 由于在加载GDTR时还没有进入保护模式,因此只能用20位地址
									; 这里就只能用32位来表示20位地址了
									; 因此在进入保护模式前只能将GDT加载到1MB的内存空间中
									; 在进入保护模式之后可以再将GDT移动到其它位置
									; 由于MBR位于0x7C00开始的512字节空间中了
									; 因此就将GDT放在后面一个新的512字节处(7E00H = 7C00H + 512)

PORT_FAST_A20	equ	0x92			; 快速设置A20地址线的端口
GATE_ALT_A20	equ	0x02			; 开启A20地址线的位掩码(门控),也称作A20替代门控
									; 即该8位端口的1号位置1即可打开A20地址线

GAT
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值