2015-11-10 3 views
0

Я не могу напечатать баннер A, # все на одной строке. Мне не разрешено редактировать строку, добавляя CR или LF. Помощь pls!Как печатать строку?

 START:     ; first instruction of program 

loop 
move.b #5,D0 
trap #15 

lea str,A1 
move.b #0,D0 
trap #15 

bra loop 


SIMHALT    ; halt simulator 


      str 
       dc.b ' #  ' 
       dc.b ' # # ' 
       dc.b ' # # ' 
       dc.b ' #  # ' 
       dc.b ' ####### ' 
       dc.b ' #  # ' 
       dc.b ' #  # ' 





END START  ; last line of source 

ответ

0

Я заметил несколько вещей в вашем коде.

Когда вы передаете номер задачи вызову 15, вам следует сохранить его с помощью move.w, это гарантирует, что обработчик ловушки получит только значение, которое вы намереваетесь. Если ранее в регистре было присвоено число, равное $ 12345678, move.b # 0, д-р оставил бы его с $ 12345600, а обработчик ловушки занял бы номер задачи как $ 5600, а не 0.

В вашем запросе task 0, чтобы отобразить строку, содержащуюся в A1, вы не указали длину строки для отображения в D1 (согласно руководству), это снова должно быть длиной слова. В руководстве говорится, что он останавливается на NULL, но это относится к чтению символа NULL в строке, а не в D1.

Так что ваш код становится:

loop 
    move.w #5,D0 
    trap #15 

    lea str,A1 
    move.w #0,D0 ; Display string action 
    move.w #70,d1 ; Maximum number of characters to display 
    trap #15 

    bra loop 
Смежные вопросы