Upload
felix-pinedo-quezada
View
212
Download
0
Embed Size (px)
DESCRIPTION
claves
Citation preview
clave=200
data segment
mensaje db 'mundo'
valor=($-mensaje)
variable1 db 'Felix'
valor1=($-variable1)
variable2 db valor1 dup()
dato1 db -10,20h,30,40
dato2 dw 10,20,30h,40h,5,6,7,8,9
dato3 dd 12,61001934h,5556h,78
dato4 dw ?,?
data ends
code segment
assume cs:code,ds:data
inicio:
mov ax,data ;0710 ; AX= 0710
mov ds,ax ; DS=0710
mov cx,valor ; CX=0005
mov si,offset mensaje ; SI= ‘mundo’
l1:
and byte ptr mensaje[si],0Cfh ; 0cfh=011001111b , elimina el 5to bit en cada iteración realizada Almacena CF
inc si ; SI=0001
loop l1 ; CX=0004 iterando 4 veces hacia “l1”,CX decrementa en 1 bit por cada loop, mientras que SI aumenta en 1 por cada loop, quedando
CX2=0003 CX3=0002 CX4=0001 CX5=0000
SI2=0002 SI3=0003 SI4=0004 SI5=0005
sub cx,cx ; CX=0000
sub si,si ; SI=0000
mov bx,valor1+1 ; BX=0006
mov di,si ; DI=0000
l2:
xor variable1[si],clave ; clave=200=C8h ; variable1=’Felix’=46656C6978h
variable1[si]=
mov ah,variable1[si] ; AH=8E
xor variable1[di],clave ;
mov variable2[di],ah ; variable2[di]=
inc di ; DI=0001
inc si ; SI=0001
dec bx ; BX=0005
cmp bx,0 ; Compara Si BX=0000
jnz l2 ; Si No es cero, salta a l2, iterará 5 veces ya que BX se irá decrementando en 1 bit hasta que cumpla la condición de jnz y pueda continuar.
mov ah,dato1 ; AH=8E
mov bh,byte ptr dato2 ; BH=B0
add ah,bh ; AH=3E
mov byte ptr dato4,ah ; AH=62h byte ptr dato4
mov bl,byte ptr dato3 ; BL=0C
add byte ptr dato4,bl ; BL=12h byte ptr dato4
mov cx,offset variable 1 ; CX=0001
not cx ; CX=FFFE
code ends
end inicio