Die ersten zwei Zeilen des ersten Monats werden abgeschnitten und ich weiß nicht warum. Es spielt keine Rolle, wenn Sie die Reihenfolge des Drucks ändern oder April löschen; Der Mai wird auch abgeschnitten, wenn Sie das tun. Ich binDrucken von Monaten im Kalenderformat in Assembler (tasm mit Dosbox). Mein erster Monat wird immer abgeschnitten
.model tiny
.data
Apr db " April 2017 ",13,10
db "Sun Mon Tue Wed Thu Fri Sat",13,10
db " 1 ",13,10
db " 2 3 4 5 6 7 8 ",13,10
db " 9 10 11 12 13 14 15 ",13,10
db "16 17 18 19 20 21 22 ",13,10
db "23 24 25 26 27 28 29 ",13,10
db "30 ",13,10,0
May db " May 2017 ",13,10
db "Sun Mon Tue Wed Thu Fri Sat ",13,10
db " 1 2 3 4 5 6 ",13,10
db " 7 8 9 10 11 12 13 ",13,10
db " 14 15 16 17 18 19 20 ",13,10
db " 21 22 23 24 25 26 27 ",13,10
db " 28 29 30 31 "
.code
org 100h
print :
mov ah,9
int 21h
ret
end print
start:
lea dx,Apr
call print
lea dx,May
call print
mov ah, 4ch
int 21h
end start
Wie in der Dokumentation zu 'int 21h/ah = 9' angegeben, sollte der String mit' '$ '' abgeschlossen werden. – Michael
'.model tiny',' org 100h' (.COM-Programm) und '.data',' .code '(.EXE-Programm) stimmen nicht überein. Erstellen Sie ein .COM-Programm oder ein .EXE-Programm? Zeigen Sie die Befehlszeilen an, mit denen Sie das Programm erstellen. – rkhb
Das Hinzufügen von $ hilft auch nicht. Es macht es tatsächlich schlimmer, weil nur eine Zeile gedruckt wird: 16 17 18 19 20. – ajstc