2013-09-26 29 views
0

我們在TASM中使用LOOPING輸出一個圖形,但是沒有人獲得正確的代碼,所以我們的教授將它作爲我們的作業。TASM循環字符(行和列)

B C

d電子網

G H I J

K L M N 2 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 

回答

0

添加以0開始的另一個計數器(寄存器或變量)。打印字符後,將計數器加1並檢查它是否大於row1。如果是,增加row1 1,計數器復位到0和復位col1回2.

(你也可以做col1row1之間的比較,如果你不希望使用一個額外的櫃檯,但這將涉及一些額外的算術,所以我選擇了最簡單的方法)。

順便說一下,您可能想要更改宏中的int 21hint 10h之間的順序,以便第一個字母(A)的位置正確。