TASM循环字符(行和列)

时间:2013-09-26 11:48:11

标签: loops assembly tasm

我们在TASM中有我们的活动使用LOOPING输出一个数字,遗憾的是没有人得到正确的代码,所以我们的教授将它作为我们的功课。

  

A

     

B C

     

D E F

     

G H I J

     

K L M N O

我的代码是

@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

1 个答案:

答案 0 :(得分:0)

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

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

顺便说一句,您可能希望更改宏中int 21hint 10h之间的顺序,以便正确定位第一个字母(A)。< / p>