x86汇编--(一)寄存器功能、寻址方式、伪指令总结
来源:互联网 发布:网页设计软件哪个好 编辑:程序博客网 时间:2024/06/06 04:58
;看视频的初学汇编的不算小结的小结,容易忘(主要在masm中)
AX: 普通功能寄存器
BX: 普通功能寄存器
[BX]: masm编译器中用于 代替debug中内存的偏移地址
DS: 内存基地址
[BX]: 偏移地址 或者使用 ds:[偏移地址] 来表示
CX: 普通功能寄存器
设置loop循环的次数
CS: 程序执行基地址
IP: 程序执行的偏移地址
SS: 栈指针的基地址
SP: 栈指针的偏移地址,一般来说对SP只进行mov操作,进行其他操作是非法的,会产生奇怪的错误
--------------------------------------------------------------------------------------------------------
ES: 和DS一样也可以存一个基地址 (好神奇,在程序中要把一段内存的内容放到另外一段去的时候可以通过这个进行一定的优化啊)
SI、DI和BX的功能基本差不多,唯一不同的是他们不能像BX一样分成BL和BH两个部分
BP在没有指定段地址时与SP一样的,指定段地址ds则表示与ds:[bx]是一样的意义
注:SP+BP、DI+SI是不允许的
伪指令:
db:一个字节,8位
dw:一个字,16位
dd:两个字,32位
db+dup:db 3 dup(‘acg‘,’ACG’) 相当于 'acgACGacgACGacgACG'
寻址方式:
1.立即寻址
例如:mov ax,0 对应一个机器码,存放在指令缓冲寄存器中,汇编指令中直接给出。
2.寄存器直接寻址
例如:ds:[0]、es:[0] 据逆向里面说凡是这个寻址方式都要进行重定位
3.寄存器间接寻址
例如:[bx+idata]
4.寄存器变址寻址
例如:[bx+si]
5.相对基址变址寻址
例如:[bx+si+idata]
在上面的寻址方式中,一般用bx定义整个结构体,用idata定义某个数据项,用si定位数据项的具体的一个字(节)或者说是元素。在反汇编中十分有用
SI、DI和BX的功能基本差不多,唯一不同的是他们不能像BX一样分成BL和BH两个部分
BP在没有指定段地址时与SP一样的,指定段地址ds则表示与ds:[bx]是一样的意义
注:SP+BP、DI+SI是不允许的
伪指令:
db:一个字节,8位
dw:一个字,16位
dd:两个字,32位
db+dup:db 3 dup(‘acg‘,’ACG’) 相当于 'acgACGacgACGacgACG'
寻址方式:
1.立即寻址
例如:mov ax,0 对应一个机器码,存放在指令缓冲寄存器中,汇编指令中直接给出。
2.寄存器直接寻址
例如:ds:[0]、es:[0] 据逆向里面说凡是这个寻址方式都要进行重定位
3.寄存器间接寻址
例如:[bx+idata]
4.寄存器变址寻址
例如:[bx+si]
5.相对基址变址寻址
例如:[bx+si+idata]
在上面的寻址方式中,一般用bx定义整个结构体,用idata定义某个数据项,用si定位数据项的具体的一个字(节)或者说是元素。在反汇编中十分有用
1 0
- x86汇编--(一)寄存器功能、寻址方式、伪指令总结
- ARM汇编指令(ARM寻址方式、汇编指令、伪指令)
- ARM汇编指令(ARM寻址方式、汇编指令、伪指令
- 51汇编----寻址方式和伪指令
- X86汇编 伪指令
- 80X86寻址方式与常见汇编指令
- 汇编指令寻址方式
- 16位汇编寄存器和寻址方式总结
- 8086/8088指令寻址方式和汇编指令总结
- 汇编 寻址方式总结
- 汇编寻址方式总结
- 汇编 寻址方式总结
- 汇编寻址方式总结
- 80x86寄存器及寻址方式
- X86汇编 通用寄存器总结
- [汇编]伪指令(一)
- 汇编伪指令总结
- 80X86寻址方式总结
- PLM(Product Lifecycle Management)System
- 《Java程序设计基础》 第6章手记
- C语言库函数一
- C++精进篇(四)之―结构体和头文件
- 关于struts2中传入中文参数然后显示到页面出现乱码
- x86汇编--(一)寄存器功能、寻址方式、伪指令总结
- 条款1:理解模板类型推断
- hdu 2609 how many
- C++精进篇(二)之―指针和引用
- iOS职位面试问题及答案
- 《夜曲》
- Git 教程 - Git 基本用法
- HBase之HFile解析
- 建立二叉树的二叉链表