Assembly-programming-assembly-lods-instruction
提供:Dev Guides
アセンブリ-LODS命令
暗号化において、シーザー暗号は最も単純な既知の暗号化技術の1つです。 この方法では、暗号化されるデータ内の各文字は、アルファベットの下の一定数の位置の文字に置き換えられます。
この例では、データ内の各アルファベットを2つのアルファベットのシフトに置き換えるだけでデータを暗号化するため、 a は c 、 b は d などに置き換えられます。
LODSを使用して、元の文字列「パスワード」をメモリにロードします。
section .text
global _start ;must be declared for using gcc
_start: ;tell linker entry point
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
上記のコードをコンパイルして実行すると、次の結果が生成されます。
rcuuyqtf