项目环境
- 编译环境:搭建一个nasm2.8的编译环境。
- 镜像文件:采用winhex_18.2刷入编码。
- 虚拟机:采用Bochs-2.4.5。
项目软件
- 傻瓜式环境配置。
- 解压文件到D盘能直接使用。
运行结果
程序源码-方法一(.asm)
org 0x7c00
jmp start
string db 'world',0
passwrod db "23456",0
start:
mov ax,0xb800
mov es,ax
mov bx , 0x0000
mov ax , 0
mov si , 0x7c03
mov cx , 0x0000
mov ds , cx
do:
cmp bx ,0x0AF0 ; 0AF0 H = 2800 循环 2800 次
ja write
; bx bp si di
; si di
; bx,bp 上下组合
mov byte [es:bx],' '
inc bx
mov byte [es:bx],0x0c
inc bx
jmp do
write:
mov byte [es:bx],'h'
inc bx
mov byte [es:bx],0x0c
inc bx
mov byte [es:bx],'e'
inc bx
mov byte [es:bx],0x0c
inc bx
mov byte [es:bx],'l'
inc bx
mov byte [es:bx],0x0c
inc bx
mov byte [es:bx],'l'
inc bx
mov byte [es:bx],0x0c
inc bx
mov byte [es:bx],'o'
inc bx
mov byte [es:bx],0x0c
inc bx
; mov ax , 0
write2:
mov cl , byte [ds:si]
cmp cl , 0
je exit
mov byte [es:bx] , cl
inc bx
mov byte [es:bx] , 0x0c
inc bx
inc si
inc ax
jmp write2
exit:
程序源码-方法二(.asm)
org 0x7c00
jmp start
string db 'hello world',0
start:
mov ax,0xb800
mov es,ax
mov bx , 0x0000
mov ax , 0
mov si , 0x7c03
mov cx , 0x0000
mov ds , cx
do: ;清屏
cmp bx ,0x0AF0
ja printstr
mov byte [es:bx],' '
inc bx
mov byte [es:bx],0x0c
inc bx
jmp do
printstr:;输出字符串
mov cl , byte [ds:si]
cmp cl , 0
je exit
mov byte [es:bx] , cl
inc bx
mov byte [es:bx] , 0x0c
inc bx
inc si
jmp printstr
exit: