誰かがこれらの 3 つの命令の機能を説明できますか?
ORG 1000H
MOV AX,CS
MOV DS,AX
コード、データ、および余分なセグメントが理論上何であるかはわかっていますが、次のとおりです。
それらはこのプログラムでどのように実装されていますか?
セグメント全体が別のセグメントに移動したのはなぜですか? (
MOV AX,CS
とMOV DS,AX
)
これらの 2 つの命令は実際に何をしますか?
ハイライトされた 3 つの命令を除いて、このコードの他のすべての命令の意味を理解できます。
(プログラムは正常に動作します。0 がヒットするまで入力を受け入れます。amov ah,01h
と anがありint 21h
、比較al
して、そうで'0'
あればal
に'0'
ジャンプしlast
、そうでない場合は にジャンプしback
ます。)
ASSUME CS:CODE
CODE SEGMENT
ORG 1000H
MOV AX,CS
MOV DS,AX
BACK:
MOV AH,01H
INT 21H
CMP AL,'0'
JZ LAST
JMP BACK
LAST:
MOV AX,4C00H
INT 21H
CODE ENDS
END
(編集者注:.com
プログラムはオフセットでロードされ100h
、すべてのセグメント レジスタは互いに等しく設定されます 。これはプログラムのように見えるため、org 1000h
おそらくタイプミスです。このプログラムは絶対アドレスを使用せず、相対アドレスのみを使用するため、壊れません。ジャンプします。)org 100h
.com