http://qwop.iteye.com/blog/1958761

// lodsb.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include <string.h> /************************************************************************/
/* 载入串指令
/* LODS LODSB LODSW LODSD 例子
/* 运行结果:
/* bcdef
/* g1
/* 2345
/************************************************************************/
int main(int argc, char* argv[])
{ char s[33] = "abcdefg123456789";
char lodsb_chars[ 10 ] = {0};
char ret[ 10 ] = {0};
short vWORD = 0; // 备用载入 字 数据
int vDWORD = 0; // 备用载入 双字 数据 __asm {
xor eax,eax // 清空eax
lea esi, s // esi 指向数据 s mov ecx, 2 // 执行两次 lodsb
// 载入串指令: LODSB、LODSW、LODSD ;将 ESI 指向的数据载入到 AL/AX/EAX, 执行后 ESI 自动变化
rep lodsb // mov al byte ptr [esi]; esi = esi + sizeof( byte ); // 数据载入到al中
mov lodsb_chars[ 0 ], al // b lodsb
mov lodsb_chars[ 1 ], al // c lodsb
mov lodsb_chars[ 2 ], al // d lodsb
mov lodsb_chars[ 3 ], al // e lodsb
mov lodsb_chars[ 4 ], al // f lodsw // 载入串 字 指令
mov vWORD,ax // g1 lodsd // 载入串 双字 指令
mov vDWORD,eax // 2345
} printf( "%s\r\n", lodsb_chars ); strncpy( ret, (char*) &vWORD, 2 ); // 将字符串 ps 中 2 个字符复制到字符串 ret 中。
printf( "%s\r\n", ret ); strncpy( ret, ( char* ) &vDWORD, 4 ); // 将字符串 ps 中 4 个字符复制到字符串 ret 中。
printf( "%s\r\n", ret ); getchar();
return 0;
}

已有 0 人发表留言,猛击->>这里<<-参与讨论

ITeye推荐

LODS LODSB LODSW LODSD 例子【载入串指令】的更多相关文章

  1. 汇编 指令lodsb,lodsw,lodsd

    知识点: 汇编指令 lodsb,lodsw,lodsd 一.汇编指令LODSB //scasb scasw scasd //stosb stosw stosd 1. __asm lodsb //作用 ...

  2. 自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)

    将陆续上传新书<自己动手写CPU>.今天是第38篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了.一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...

  3. 自己动手写CPU之第九阶段(4)——载入存储指令实现思路

    将陆续上传新书<自己动手写CPU>,今天是第40篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了,一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...

  4. 汇编语言--微机CPU的指令系统(五)(字符串操作指令)

    (11)字符串操作指令 字符串操作指令的实质是对一片连续存储单元进行处理,这片存储单元是由隐含指针DS:SI或ES:DI来指定的.字符串操作指令可对内存单元按字节.字或双字进行处理,并能根据操作对象的 ...

  5. EditPlus 中添加 Win32 ASM 语法支持

    将以下内容保存为 Win32Asm.stx:然后选“工具”.“配置用户工具”.“设置与语法”.“添加”. “描述”=Win32Asm.“扩展名”=asm .”语法文件”选存入之文件,确定即可. #TI ...

  6. x86汇编指令详解

    80x86指令系统 80x86指令系统,指令按功能可分为以下七个部分. (1) 数据传送指令. (2) 算术运算指令. (3) 逻辑运算指令. (4) 串操作指令. (5) 控制转移指令. (6) 处 ...

  7. x86汇编指令具体解释

    80x86指令系统 80x86指令系统,指令按功能可分为下面七个部分. (1) 数据传送指令. (2) 算术运算指令. (3) 逻辑运算指令. (4) 串操作指令. (5) 控制转移指令. (6) 处 ...

  8. 80X86指令总结

    一.数据传送指令 指令名称 汇编语句格式 功能 影响标志位 传送move data mov opd, ops (ops) → opd:分为主存储器.通用寄存器.段寄存器,不可同时使用主存储器,类型要匹 ...

  9. Win32汇编之其他指令

    汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地 ...

随机推荐

  1. ISO7816标准IO通讯方面的需求

    以下需求适用于符合ISO7816的Reader的测试:换句话说只要Reader能通过以下指令,就基本符合了ISO7816标准,具体需求为: 1 概述 本文档主要描述CDCAS系统中用到的CA证书的格式 ...

  2. 转:linux执行shell脚本的方式及一些区别

    假设shell脚本文件为hello.sh放在/root目录下.下面介绍几种在终端执行shell脚本的方法: [root@localhost home]# cd /root/ [root@localho ...

  3. 数据库 SQL语句优化

    温馨提示:本篇内容均来自网上,本人只做了稍微处理,未进行细致研究,仅当做以后不备之需,如若你喜欢可尽情转走. 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图 ...

  4. Java中线程池的学习

    线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理.当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程 ...

  5. 关于matlab中textread

    本文主要内容引自http://linux.chinaitlab.com/administer/872894.html 笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充: textread 基 ...

  6. npm 和 bower的区别

    npm和bower在功能上有一定的重合,但不是互斥关系,可以在项目中同时运用.区别在于npm在设计之初就采用了的是嵌套的依赖关系树.一个普通的前端包的依赖树比较长,npm 会将开发环境一起下载下来,  ...

  7. PyCharm 4.0下载(附keygen)

    百度网盘:http://pan.baidu.com/s/1nvAdEM9  密码:xfz9

  8. JSF和Struts的区别概述

    JSF和Struts的区别概述,都采用taglib来处理表示层:在jsp页面中,二者都是采用一套标记库来处理页面的表示和model层的交互. 据说JSF的主要负责人就是struts的主要作者,所以二者 ...

  9. java 图片 批量 压缩 +所有压缩

    /* oldsrc  : 原图片地址目录 如 'd:/'    newsrc  : 压缩后图片地址目录 如 'e:/'    widthdist,heightdist : 压缩后的宽和高       ...

  10. Java_.jar .war .ear 详解

      .jar 全称:                     java archive: 包含:                     class.properties文件,是文件封装的最小单元: ...