汇编多种方法实现清屏并打印字符串(.asm源码)
Posted 敲代码两年半的练习生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编多种方法实现清屏并打印字符串(.asm源码)相关的知识,希望对你有一定的参考价值。
项目环境
- 编译环境:搭建一个nasm2.8的编译环境。
- 镜像文件:采用winhex_18.2刷入编码。
- 虚拟机:采用Bochs-2.4.5。
项目软件
- 傻瓜式环境配置。
- 解压文件到D盘能直接使用。
- 项目软件及项目运行环境下载地址:https://download.csdn.net/download/Gyangxixi/19771363
运行结果
程序源码-方法一(.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: jmp 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: jmp exit
以上是关于汇编多种方法实现清屏并打印字符串(.asm源码)的主要内容,如果未能解决你的问题,请参考以下文章