回 帖 发 新 帖 刷新版面

主题:汇编语言的编译环境

 

   大家好,下面是我的一些小分享,详情请http://www.bdqn1.cn

   汇编的调试环境总的来说比较少,也很少有非常好的编译器。reallychenchi设计的轻松汇编是一款非常适合初学者的汇编编译器。轻松汇编是一个汇编语言集成开发环境,主要面向汇编语言初学者,也可以用它进行开发。除了普通的编辑功能以外,它还可以自动整理格式、高亮显示和编译、链接、调试汇编程序,非常方便实用。 轻松汇编的最大特点是可以格式整理,就像VC6.0一样,可以设置断点调试,省却了使用者的不少工作。它可以在Win98/2k/XP下运行,是一款很优秀的软件。[5]

编辑本段指令集数据传输指令

  它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。
  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,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
  POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
  BSWAP 交换32位寄存器里字节的顺序
  XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)
  CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )
  XADD 先交换再累加.( 结果在第一个操作数里 )
  XLAT 字节查表转换.
  ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )
  2. 输入输出端口传送指令.
  IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )
  OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )
  输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时, 其范围是 0-65535.
  3. 目的地址传送指令.  
  LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX.
  LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
  LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI.
  LFS 传送目标指针,把指针内容装入FS. 例: LFS DI,string ;把段地址:偏移地址存到FS:DI.
  LGS 传送目标指针,把指针内容装入GS. 例: LGS DI,string ;把段地址:偏移地址存到GS:DI.
  LSS 传送目标指针,把指针内容装入SS. 例: LSS DI,string ;把段地址:偏移地址存到SS:DI.
  4. 标志传送指令.  
  LAHF 标志寄存器传送,把标志装入AH.
  SAHF 标志寄存器传送,把AH内容装入标志寄存器.
  PUSHF 标志入栈.
  POPF 标志出栈.
  PUSHD 32位标志入栈.

  POPD 32位标志出栈.

  本文摘自http://www.bdqn1.cn

回复列表 (共1个回复)

沙发

汇编指令可以合起来用吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册