- 程序集教程
- 程序集——主页
- 程序集 - 简介
- 程序集 - 环境设置
- 程序集 - 基本语法
- 程序集 - 内存段
- 程序集 - 寄存器
- 程序集 - 系统调用
- 程序集 - 寻址模式
- 程序集 - 变量
- 程序集 - 常量
- 程序集 - 算术指令
- 程序集 - 逻辑指令
- 程序集 - 条件
- 程序集 - 循环
- 程序集 - 数
- 程序集 - 字符串
- 程序集 - 数组
- 程序集 - 过程
- 程序集 - 递归
- 程序集 - 宏
- 程序集 - 文件管理
- 程序集 - 内存管理
- 程序集实用资源
- 程序集 - 快速指南
- 程序集 - 有用资源
- 程序集 - 讨论
程序集 - LODS 指令
在密码学中,凯撒密码是最简单的加密技术之一。在此方法中,要加密的数据中的每个字母都由字母表中固定数量位置之后的字母代替。
在此示例中,我们通过用两个字母之后的字母简单替换其中的每个字母来加密数据,因此 **a** 将替换为 **c**,**b** 用作 **d**,依此类推。
我们使用 LODS 来将原始字符串“password”加载到内存中。
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
assembly_strings.htm
广告