2017-05-10 15 views
0

私はアセンブリ8086でDES暗号化プログラムを扱っています。私は置換されたキー-k +を実行しなければならないときに分割して、各繰り返しをシフトします。 問題はk +の半分が28ビットなので、varに入れて "shl"することはできません。どうすれば解決できますか?アセンブリ8086:DES暗号化バイナリシフト

ありがとうございました。

RCL r/m, 1

答えて

2

またはRCR r/m, 1は、いくつかの組み合わせのレジスタ/変数をシフトするための命令である:

.MODEL small 
.STACK 

.DATA 
    k dd 12345678h  ; 00010010 00110100 01010110 01111000 

.CODE 
main PROC 
    mov ax, @data 
    mov ds, ax 

    mov ax, k + 0 
    mov dx, k + 2 

    shl ax, 1   ; Shift out leftmost bit into Carry, shift in 0 
    rcl dx, 1   ; Shift in Carry 

    mov k + 0, ax  ; 00100100 01101000 10101100 11110000 
    mov k + 2, dx 


    mov ax, 4C00h 
    int 21h 
main ENDP 

END main 
関連する問題