0

そのため、アセンブリ言語で問題が発生しました。「and」命令と「or」命令のみを使用して、「not」命令から同じ望ましい結果を得る方法が必要です。だから私が持っている場合:

AL = 1011000

not AL = 0100111

しかし、および/または命令のみを使用してその結果が必要です。

マスキングビットなどを使用する必要があると思いますが、これまでのところ運がありません. 正しい方向に少しでも微調整していただければ幸いです。

4

2 に答える 2

1

それはとても簡単です:

mov ah, 11111111b    ; this is your mask
mov al, 00010011b    ; anything you want the 'not' from
xor al, ah

それでおしまい!and 演算子も使用しませんでした。
使用しているアセンブラはわかりませんが、これは nasm で機能しました。

于 2012-11-28T20:03:29.313 に答える
0

ループで実行できます(テストされていません)。しかし、それはレジスタの無駄です。

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
于 2012-11-28T04:36:30.103 に答える