2017-05-10 8 views
0

donc je travaille sur le programme de chiffrement DES dans l'assemblage 8086 et je suis arrivé à la partie quand je dois faire la clé permutée k +, la diviser et ensuite faire un décalage à chaque itération. Le problème est que chaque moitié de k + est de 28 bits, donc je ne peux pas mettre le dans un var et faire "shl". Comment puis-je le résoudre?Assemblée 8086: DES décalages binaires de chiffrement

Merci à l'avance.

Répondre

2

RCL r/m, 1 ou RCR r/m, 1 sont les instructions pour déplacer plusieurs registres combinés/variables:

.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