NASM 汇编编程(三)实现换行(简单)

本文介绍了如何使用NASM汇编语言编程在DOS和映像版本中实现换行功能。通过添加换行符(ASCII码10)和回车符(ASCII码13),使得程序在输入后能正确进行换行操作,调整光标到第二行起始位置。示例代码展示了如何创建DOS程序和二进制映像,并提供了编译方法。

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

NASM 汇编编程(三)


换行一般由两个部分组成:

  • 换行符(ascii码为10),输入后换行,但光标位置不在第二行起首
  • 回车符(ascii码为13),输入后让光标位置回到第二行起首

加入这两部分即可实现换行。

DOS版

创建文件test.asm并复制粘贴以下代码

org 100h
jmp start
welcome: db 'HelloWorld',10,13,'$'
start:  mov   si, welcome
        call  printstr
        ret
printstr:
      mov al,[si]
      cmp al,'$'
      je discover
      mov ah,0eh
      int 10h
      inc si
      jmp printstr
discover:
      ret

用NASM编译:
nasm (test.asm所在目录)\test.asm -o (任意一个目录)/test.com
一个DOS程序就出来了,可以用cmd调用。

映像版

创建文件test.asm并复制粘贴以下代码

org 7c00h
jmp start
welcome: db 'HelloWorld',10,13,'$'
start:  mov   ax, 0
        mov   ds, ax
        mov   si, welcome
        call  printstr
        ret
printstr:
      mov al,[si]
      cmp al,'$'
      je discover
      mov ah,0eh
      int 10h
      inc si
      jmp printstr
discover:
      ret

times 510-($$-$) db 0
                 db 0x55,0xaa

用NASM编译:
nasm (test.asm所在目录)\test.asm -o (任意一个目录)/test.bin
一个二进制映像出来了,用虚拟机把它作为软盘映像文件,然后启动虚拟机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值