assembly 字符串只打印在一行中,很难理解代码,(TASM/DOSbox)

sbdsn5lh  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(117)

所以我目前正在尝试我的老师的指示,并正在尝试一步一步。我甚至尝试复制他的错误,以便我可以看到如果我的tasm工作一样,他的。现在我们有一个练习,在那里,我们必须输出在3个不同的水平cas。有人能请解释给我这些是什么意思,以及我如何能够打印三个“cas”在三个水平对角从右上角到左下角?

.model small
.code
org 100h
start: jmp main
mess 1 db"CAS$"
mess 2 db"CAS$"
mess 1 db"CAS$"
main proc near
mov ax,03
int 10h

mov ah,05
mov bh,05
mov dh,05
mov dl,05
int 10h

mov ah,09
mov cx,03
mov bl,42h
int 10h

mov ah,09
mov dx,offset mess1
int 21h

mov ah,02
mov bh,00
mov dh,12
mov dl,40
int 10h

mov ah,09
mov cx,03
mov bl,42h
int 10h

mov ah,09
mov dx,offset mess2
int 21h

mov ah,02
mov bh,00
mov dh,12
mov dl,40
int 10h

mov ah,09
mov cx,03
mov bl,42h
int 10h

mov ah,09
mov dx,offset mess3

int 21h
int 20h
main endp
end start

看,我真的不明白我在这里做什么,因为我只是跟着我的老师的工作。他真的没有解释得很好,只是向我们展示了一步一步的过程,没有解释他做了什么和为什么。我唯一知道的是这里的cx是字符数和bh是文本的背景颜色?希望有人能帮助我在我的问题!
看,我真的不明白我在这里做什么,因为我只是跟着我的老师的工作。他真的没有解释得很好,只是向我们展示了一步一步的过程,没有解释他做了什么和为什么。我唯一知道的是这里的cx是字符数和bh是文本的背景颜色?希望有人能帮助我在我的问题!

lvmkulzt

lvmkulzt1#

默认情况下不会出现新行。您需要手动添加它们。我首选的方法是直接将它们放入字符串中。

mess1 db "cas",13,10,'$'
mess2 db " cas",13,10,'$'
mess3 db "  cas",13,10,'$'

如果您背对背打印这些内容,则应获得:

cas
 cas
  cas

相关问题