2017-05-10 5 views
0

so arbeite ich auf DES-Verschlüsselungsprogramm in Assembly 8086 und ich habe zu dem Teil, wenn ich den permutierten Schlüssel-k + tun muss, teilen Sie es und dann einige Verschiebung bei jeder Iteration. Das Problem ist, jede Hälfte von k + ist 28 Bit, so kann ich nicht in eine Var und "shl" tun. Wie kann ich es lösen?Assembly 8086: DES-Verschlüsselung binären Verschiebungen

Vielen Dank im Voraus.

Antwort

2

RCL r/m, 1 oder RCR r/m, 1 sind die Anweisungen mehrere kombinierte Register/Variablen zu verschieben:

.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