私はアセンブリで3ループのタイミングを取っています。
最初のループは10秒間動作していて、次に2秒間実行されるべき第2ループにジャンプします。 3番目は10秒以上働くことです。アセンブリの遅延ループを制御する方法
主な考えは、交通信号を構築することです。パラレルポートに接続されている各LEDは、TASMを使用して異なる時間をオンにする必要があります。
赤色:10秒。
レッド&オレンジ:2秒
グリーン:10秒
、その後、再び赤に取得...ので
上の任意のヘルプしてください? INT 21h
、機能2Ch
を使って試してみました。
私の先生は、このようにうまくいくと教えてくれました。 まだ、コードを実行しようとしたときにLEDが点灯しませんでした。
私のコード:
.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
実際に望むのは、遅延ループまたは同等のもので、単一の命令のタイミングや性能の測定ではありません。 –
はい!正確に。それを助けてくれる?私のコードにはエラーはありませんでしたが、まだうまくいきませんでした! –
投稿しないコードについてはお手伝いできません。あなたがしようとしていることを示す[mcve]はこれをより良い質問にするでしょう。 –