そのため、アセンブリ言語で問題が発生しました。「and」命令と「or」命令のみを使用して、「not」命令から同じ望ましい結果を得る方法が必要です。だから私が持っている場合:
AL = 1011000
not AL = 0100111
しかし、および/または命令のみを使用してその結果が必要です。
マスキングビットなどを使用する必要があると思いますが、これまでのところ運がありません. 正しい方向に少しでも微調整していただければ幸いです。
そのため、アセンブリ言語で問題が発生しました。「and」命令と「or」命令のみを使用して、「not」命令から同じ望ましい結果を得る方法が必要です。だから私が持っている場合:
AL = 1011000
not AL = 0100111
しかし、および/または命令のみを使用してその結果が必要です。
マスキングビットなどを使用する必要があると思いますが、これまでのところ運がありません. 正しい方向に少しでも微調整していただければ幸いです。
それはとても簡単です:
mov ah, 11111111b ; this is your mask
mov al, 00010011b ; anything you want the 'not' from
xor al, ah
それでおしまい!and 演算子も使用しませんでした。
使用しているアセンブラはわかりませんが、これは nasm で機能しました。
ループで実行できます(テストされていません)。しかし、それはレジスタの無駄です。
NotAL:
mov bl, 1
mov bh, 0feh
L3:
test al, bl
jne L1
or al, bl
jmp L2
L1:
and al, bh
L2:
shl bl, 1
rol bh, 1
test bl, bl
jne L3
ret