Ich bin in einem Kampf Timing 3 Schleifen in der Montage.
Die erste Schleife soll 10 Sek. Lang arbeiten und dann in die zweite Schleife springen, die für 2 Sekunden ausgeführt werden soll. Der dritte soll 10 weitere Sekunden arbeiten.Wie man Verzögerungsschleifen in der Baugruppe steuert
Die Grundidee ist, eine Ampel zu bauen. Jede LED, die an den Parallelanschluss angeschlossen ist, sollte mit TASM eine andere Zeit einschalten.
Rot: 10 sek.
Red & orange: 2 sec
Grün: 10 sec
und dann wieder auf rot zurück .. und so weiter
Jede Hilfe bitte? Ich versuchte mit INT 21h
, Funktion 2Ch
, um jede Schleife Zeit.
Mein Lehrer sagte mir, es würde auf diese Weise gut funktionieren. noch keine der LEDs eingeschaltet, als ich versuchte, den Code auszuführen.
mein Code:
.model small
.stack 100
.code
Loop_time :
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add bx,cx
mov dl,dh
mov dh,0
add bx,dx
push bx
loop_red :
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add ax,cx
mov dl,dh
mov dh,0
add ax,dx
add ax,0ah
pop bx
cmp ax,bx
jg loop_redorange
mov DX, 378h
mov AL, 1
out DX,AL
loop_redorange:
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add ax,cx
mov dl,dh
mov dh,0
add ax,dx
add ax,0ch
pop bx
cmp ax,bx
jg loop_green
mov DX, 378h
mov AL,3
out DX,AL
loop_green :
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add ax,cx
mov dl,dh
mov dh,0
add ax,dx
add ax,20h
pop bx
cmp ax,bx
jg loop_red
mov DX, 378h
mov AL, 4
out DX,AL
mov ah,4ch
int 21h
end
Also was Sie eigentlich wollen, ist eine Verzögerung-Schleife oder gleichwertiges, keine Zeitmessung eines einzelnen Befehls oder Messung der Leistung. –
Ja! genau . Irgendwelche Hilfe dabei? Mein Code hatte keine Fehler, aber noch nicht funktioniert lol! –
Wir können Ihnen nicht mit Code helfen, den Sie nicht posten. Ein [mcve] zu zeigen, was du versuchst zu tun, würde dies zu einer besseren Frage machen. –