在线二区人妖系列_国产亚洲欧美日韩在线一区_国产一级婬片视频免费看_精品少妇一区二区三区在线

鍍金池/ 教程/ Java/ Assembly匯編 LODS指令
Assembly 變量聲明
Assembly匯編 STOS指令
Assembly 條件
Assembly 尋址模式和MOV指令
Assembly匯編教程
Assembly - 什么是匯編語言
Assembly 循環(huán)
Assembly 內(nèi)存段
Assembly匯編 宏
Assembly 寄存器
Assembly匯編 遞歸
Assembly匯編 CMPS指令
Assembly匯編 內(nèi)存管理
Assembly匯編 LODS指令
Assembly 基本語法
Assembly匯編 過程
Assembly匯編 文件管理
Assembly匯編 數(shù)組
Assembly匯編 SCAS指令
Assembly 算術(shù)指令
Assembly 環(huán)境設(shè)置
Assembly匯編 字符串處理
Assembly 數(shù)字
Assembly 常量
Assembly匯編 MOVS指令
Assembly 邏輯指令
Assembly 系統(tǒng)調(diào)用

Assembly匯編 LODS指令

在密碼學(xué)中,Caesar 密碼是一個最簡單的已知的加密技術(shù)。在該方法中,以被加密的數(shù)據(jù)中的每個字母被替換下來的字母跟一些固定的位置數(shù)。

在這個例子中,讓我們通過簡單地更換每個字母,其具有移位的兩個字母中的數(shù)據(jù)進(jìn)行加密,因此,c, b將被d取代。

我們使用LODS,加載的原始字符串'password'入內(nèi)存。

section .text
   global _start         ;must be declared for using gcc
_start:    ;tell linker entry yiibai
   mov    ecx, len
   mov    esi, s1
   mov    edi, s2
loop_here:
   lodsb
   add al, 02
   stosb
   loop    loop_here          
   cld
   rep     movsb
   mov     edx,20   ;message length
   mov     ecx,s2   ;message to write
   mov     ebx,1    ;file descriptor (stdout)
   mov     eax,4    ;system call number (sys_write)
   int     0x80     ;call kernel
   mov     eax,1    ;system call number (sys_exit)
   int     0x80     ;call kernel
section .data
s1 db 'password', 0 ;source
len equ $-s1
section .bss
s2 resb 10         ;destination

上面的代碼編譯和執(zhí)行時,它會產(chǎn)生以下結(jié)果:

rcuuyqtf