如何解决DOSBOX-X 错误:换行符向右偏移
IDEAL
MODEL small
STACK 100h
DATASEG
;creating all the messages
opening_message db 10,'This is an encryption program.',10,'This program allows you to encrypt a message into giberish,','send it to a friend,who can then decrypt it back into text$'
CODESEG
start:
mov ax,@data
mov ds,ax
; --------------------------
; Your code here
; --------------------------
;We clear the screen of dosBox
mov ax,13h
int 10h
mov ax,2
int 10h
;print opening message
lea dx,[opening_message]
mov ah,9
int 21h
exit:
mov ax,4c00h
int 21h
END start
当我尝试在 DOSBox-X(最新版本 64 位)中运行该程序时,字符串中的换行符 (10) 以巨大的偏移量打印。看图
任何人都可以帮忙吗? 谢谢 附注 该程序在 vanilla dosBox 中运行良好
解决方法
DOSBox 遵循 DOS 规则,要求回车 (13) 和换行符 (10) 输出换行符。
您的代码仅使用换行符,因此文本仅删除一行。
opening_message db 13,10,'This is an encryption program.'
db 13,'This program allows you to encrypt a message into giberish,'
db 13,'send it to a friend,who can then decrypt it back into text',13,'$'
;We clear the screen of dosbox
mov ax,13h
int 10h
mov ax,2
int 10h
为什么先设置图形屏幕13h(320x200),然后设置文本屏幕02h(80x25)? 请注意,通常使用模式编号 03h 设置 80x25 文本屏幕。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。