誰かがこれらの 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