汇编 指令lodsb,lodsw,lodsd

知识点:

 汇编指令 lodsb,lodsw,lodsd
一、汇编指令LODSB
  //scasb scasw scasd
  //stosb stosw stosd
  1、   __asm lodsb //作用 mov al,byte ptr [esi] ; esi=esi+sizeof( byte);
  2、   __asm rep lodsb // 

//取字符串元素到 AL,AX,EAX
二、LODSW,LODSD
     REP LODS WORD PTR DS:[ESI]  //esi+=2;ecx-- //LODSW
     REP LODS DWORD PTR DS:[ESI] //esi+=4;ecx-- //LODSD

 // lodsb.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <process.h>

int _tmain(int argc, _TCHAR* argv[])
{
	char s[33]="abcdef123456789";//s[0]
	char *fps="%c%c,";
	__asm
	{
       //lodsb
		xor eax,eax
		lea esi,s
		mov ecx,3 //指定循环次数
		rep lodsb;//al=byte ptr [esi];esi++; //REP LODS BYTE PTR DS:[ESI]
		movzx ebx,ah
		push ebx
		push eax
		push fps
		call dword ptr [printf]
		add esp,0xc
	}
	system("pause");
	return 0;
}
时间: 2024-12-30 01:43:14

汇编 指令lodsb,lodsw,lodsd的相关文章

汇编指令lodsb和stosb、lodsd和stosd

lodsb指令,将esi指向的地址处的数据取出来赋给AL寄存器,esi=esi+1: lodsw指令则取得是一个字. lodsd指令,取得是双字节,即mov eax,[esi],esi=esi+4: stosb指令,将AL寄存器的值取出来赋给edi所指向的地址处.mov [edi],AL:edi=edi+1: stosw指令去的是一个字. stosd指令,取得是双字节,mov [edi],eax:edi=edi+4: 转载: http://blog.csdn.net/u010874011/art

x86汇编指令详解

80x86指令系统 80x86指令系统,指令按功能可分为以下七个部分. (1) 数据传送指令. (2) 算术运算指令. (3) 逻辑运算指令. (4) 串操作指令. (5) 控制转移指令. (6) 处理器控制指令. (7) 保护方式指令. 3.3.1数据传送指令 数据传送指令包括:通用数据传送指令.地址传送指令.标志寄存器传送指令.符号扩展指令.扩展传送指令等. 一.通用数据传送指令 1传送指令 传送指令是使用最频繁的指令,格式:MOV DEST,SRC 功能:把一个字节,字或双字从源操作数S

x86汇编指令具体解释

80x86指令系统 80x86指令系统,指令按功能可分为下面七个部分. (1) 数据传送指令. (2) 算术运算指令. (3) 逻辑运算指令. (4) 串操作指令. (5) 控制转移指令. (6) 处理器控制指令. (7) 保护方式指令. 3.3.1数据传送指令 数据传送指令包含:通用数据传送指令.地址传送指令.标志寄存器传送指令.符号扩展指令.扩展传送指令等. 一.通用数据传送指令 1传送指令 传送指令是使用最频繁的指令,格式:MOV DEST,SRC 功能:把一个字节,字或双字从源操作数S

汇编指令速查

指令 功能 AAA 调整加 AAD 调整除 AAM 调整乘 AAS 调整减 ADC 进位加 ADD 加 AND 与 ARPL 调整优先级 BOUND 检查数组 BSF 位右扫描 BSR 位左扫描 BSWAP 交换字节 BT 位测试 BTC 位测试求反 BTR 位测试清零 BTS 位测试置一 CALL 过程调用 CBW 转换字节 CDQ 转换双字 CLC 进位清零 CLD 方向清零 CLI 中断清零 CLTS 任务清除 CMC 进位求反 CMOVA 高于传送 CMOVB 低于传送 CMOVE 相等

带注释的汇编指令大全

一.数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节.  如:MOV eax,11  意思:eax=11 MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX

8080汇编指令大全

8080汇编手册数据传输指令 ────────────────────────────── 它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,E

汇编指令速查表

一.数据传输指令───────────────────────────────────────它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把 AX,CX,DX,BX,SP,BP,SI,DI 依次压入堆栈.POPA 把 DI,SI,BP,SP,BX,DX,CX,AX 依次弹出堆栈.PUSHAD 把 EAX,ECX,EDX,

带凝视的汇编指令大全

一.传输数据指令 ─────────────────────────────────────── 它们在存贮器和寄存器.寄存器和输入输出port之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节.  如:MOV eax,11  意思:eax=11 MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,

汇编指令: LGDT、LIDT、LLDT、LMSW[]

汇编指令: LGDT.LIDT.LLDT.LMSW 名称 功能 操作数 操作码 模数 寄存器1 寄存器2或内存 位移量 立即数 符号 方向 芯片型号 16位 32位 LGDT 加载全局描述符 [寄16] $0F01 00 010 5 无 无 无 无 286 无 $67 LGDT 加载全局描述符 [寄32] $0F01 00 010 5 无 无 无 无 286 $67 无 LGDT 加载全局描述符 [寄16+位移8] $0F01 01 010 5 9 无 无 无 286 无 $67 LGDT 加载