bochs for windows 运行hello world汇编程序,输出红字hello world

.model tiny, c
.686P
OPTION casemap:none
PUBLIC WinMainCRTStartup
BOOTSEG = 07C0h
;msg1 = ds:[01C8h]
.code
WinMainCRTStartup:
ORG 0
 mov ax, BOOTSEG   
    mov ds, ax   
    mov es, ax
mov ax, 01C8h ;01C8h   
    mov bp, ax ; es:bp = 串地址   
    mov cx, 32; cx = 串长度   
    mov ax, 01301h ; ah = 13, al = 01h   
    mov bx, 000ch ; 页号为 0(bh = 0) 黑底红字(bl = 0Ch,高亮)   
    mov dl, 0   
    int 10h ; 10h 号中断   
 ORG 01C8h
msg1:
db "Hello, OS world!Hello, OS world!"
    ;db 0Dh,0Ah,'Hello world ...',0Dh,0Ah,0Dh,0Ah
    ORG 01FCh
_root_dev WORD 0
_boot_flag WORD 0AA55h ; 结束标志
END 

运行结果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bochs是一个开源的x86模拟器,可以在不同的操作系统上运行。要在Bochs输出Hello World,需要编写汇编代码并将其编译成二进制件,然后在Bochs运行该二进制件。下面是一个简单的汇编代码示例,可以在Bochs输出Hello World: 1. 首先,创建一个.asm件,将以下代码复制并粘贴到件中: ``` org 07c00h ; 告诉编译器程序加载到 7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符串例程 jmp $ ; 无限循环 DispStr: mov ax, BootMessage mov bp, ax ; es:bp = 串地址 mov cx, 16 ; cx = 串长度 mov ax, 01301h ; ah = 13, al = 01h mov bx, 000ch ; 页号为 0(bh = 0) 黑底红字(bl = 0Ch,高亮) mov dl, 0 int 10h ; 10h 号中断 ret BootMessage: db "Hello, OS world!" times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为 dw 0xaa55 ; 结束标志 ``` 2. 然后,使用汇编器将.asm件编译成二进制件。可以使用nasm或masm等汇编器来完成这个任务。例如,使用nasm编译器,可以在命令行中输入以下命令: ``` nasm -f bin -o boot.bin boot.asm ``` 这将生成一个名为boot.bin的二进制件。 3. 接下来,将生成的二进制件加载到Bochs中。可以在Bochs的配置件中指定要加载的二进制件。例如,在bochsrc件中添加以下行: ``` floppya: 1_44=boot.bin, status=inserted ``` 这将把boot.bin件加载到虚拟软盘驱动器A中。 4. 最后,启动Bochs运行boot.bin件。可以在Bochs的命令行中输入以下命令: ``` c ``` 这将启动Bochs运行boot.bin件。在屏幕上应该会显示“Hello, OS world!”的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值