1. ホーム
  2. assembly

[解決済み] 8086アセンブリ言語での2つのレジスタのスワッピング(16ビット)

2022-02-14 22:28:35

質問事項

他の変数、レジスタ、スタック、その他の記憶場所を使わずに、2つのレジスタの値を交換する方法を知っている人はいますか? ありがとうございます

AX, BXを入れ替えるとか。

どのように解決するのですか?

数学の演算を使えばいいんです。アイデアを提供します。参考になれば幸いです。

私はこのCコードに従いました。

int i=10; j=20
i=i+j;
j=i-j;
i=i-j;


mov ax,10
mov bx,20
add ax,bx  
//mov command to copy data from accumulator to ax, I forgot the statement, now ax=30
sub bx,ax //accumulator vil b 10
//mov command to copy data from accumulator to bx, I forgot the statement now 
sub ax,bx //accumulator vil b 20
//mov command to copy data from accumulator to ax, I forgot the statement now