034.实地址模式下一种优化输出工序的方式

本文详细介绍了一段使用汇编语言进行屏幕字符输出的代码实例。通过直接操作显存地址和数据段寄存器,实现了字符串Imissyou在屏幕上的显示。此过程涉及寄存器的初始化、内存地址的定位以及字符的逐个输出,为理解低级语言如何与硬件交互提供了深入视角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mov ax,0xB800;显存地址
mov es,ax
mov ax,0x07C0
mov ds,ax

jmp 0x07C0:code

string:
db 'I miss you'

code:
mov al,[ds:string+0]	;<=>mov al,[0x07C0A]
mov byte [es:0x0000],al
mov byte [es:0x0001],0x70

mov al,[ds:string+1]
mov byte [es:0x0002],al
mov byte [es:0x0003],0x70

mov al,[ds:string+2]
mov byte [es:0x0004],al
mov byte [es:0x0005],0x70

mov al,[ds:string+3]
mov byte [es:0x0006],al
mov byte [es:0x0007],0x70

mov al,[ds:string+4]
mov byte [es:0x0008],al
mov byte [es:0x0009],0x70

mov al,[ds:string+5]
mov byte [es:0x000A],al
mov byte [es:0x000B],0x70

mov al,[ds:string+6]
mov byte [es:0x000C],al
mov byte [es:0x000D],0x70

mov al,[ds:string+7]
mov byte [es:0x000E],al
mov byte [es:0x000F],0x70

mov al,[ds:string+8]
mov byte [es:0x0010],al
mov byte [es:0x0011],0x70

mov al,[ds:string+9]
mov byte [es:0x0012],al
mov byte [es:0x0013],0x70

mov al,[ds:string+A]
mov byte [es:0x0014],al
mov byte [es:0x0015],0x70

end:
jmp 0x07C0:end

times 510-($-$$) db 0x00   ;注意这里一定是512个字节,不然主引导扇区会崩溃
db 0x55,0xAA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值