0

我们在 TASM 中使用 LOOPING 输出一个数字,不幸的是没有人得到正确的代码,所以我们的教授把它作为我们的作业。

一个

公元前

国防军

GHIJ

荷兰皇家航空公司

我的代码是

@m macro row,col,char
mov ah,02
mov dl,char
int 21h

mov ah,02
mov dh,row
mov dl,col
int 10h
endm



cseg segment para 'code'
assume cs:cseg, ss:cseg, ds:cseg, es:cseg
org 100h

start: jmp begin
char1 db 'A'
col1 db 2
row1 db 0

begin: mov ax,0003
int 10h

mov cx,15

repeat: @m row1,col1,char1
        add col1,2
       add char1,1
       loop repeat
       
     int 20h
     cseg ends
     end start
4

1 回答 1

0

添加另一个以 0 开头的计数器(寄存器或变量)。打印一个字符后,将计数器增加 1 并检查它是否大于row1. 如果是,则增加row11,将计数器重置回 0 并重置col1回 2。

(如果您不想使用额外的计数器,您也可以在col1和之间进行比较,但这会涉及一些额外的算术,所以我选择了最简单的方法)。row1

顺便说一句,您可能需要更改宏之间的顺序,int 21h以便int 10h第一个字母 ( A) 的位置正确。

于 2013-09-26T12:04:12.200 回答