此处汇编仅仅为了看懂Linux下编译、连接、载入过程及原理 Intel 汇编规则: 在汇编程序中,立即数前面要加$,寄存器名前面要加%,以便跟符号名区分开。 mov 源 目的(字长用指令的后缀l表示32位) 这段汇编代码相当于在C程序的main函数中return 4 .开头的名称称为汇编指示(Ass ...
分类:
其他好文 时间:
2018-05-18 11:43:22
阅读次数:
314
移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位;移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数;一、算数移位指令: ...
分类:
其他好文 时间:
2018-04-21 16:10:56
阅读次数:
169
立即数寻址: 操作数本身就在指令中 例子:ADD R0,R0,#0X3F(注意:立即数需要在数据前面加上一个#号) 寄存器寻址: 利用寄存器中的数值作为操作数,数据存在寄存器中 例子:ADD R0,R1,R2 寄存器间接寻址: 数据存放在内存中,寄存其中存放的不是操作数本身,而是其在内存中的地址。通 ...
分类:
其他好文 时间:
2018-03-17 14:18:58
阅读次数:
139
本文转载自博客http://blog.csdn.net/u013216061/article/details/72511653 如果了解过Linux操作系统启动流程,那么当bootloader加载完kernel并解压并放置与内存中准备开始运行,首先被调用的函数是start_kernel。start_ ...
分类:
系统相关 时间:
2018-03-02 18:46:31
阅读次数:
236
3.1 程序编码 1.计算机系统使用了多种不同形式的抽象,对于机器级编程来说,两种抽象尤为重要: 指令集体系结构(ISA):定义了处理器状态、指令的格式,以及每条指令对状态的影响 机器级程序使用的存储器地址是虚拟地址:提供的存储器模型看上去是一个非常大的字节数组 2.反汇编器使用的指令命名规则与GC ...
分类:
其他好文 时间:
2018-02-03 19:01:35
阅读次数:
329
我的理解 引用是一个左值,而常量引用是一个右值。两者最关键的地方在于,左值可以被取到地址,而右值取不到地址,这个性质就决定了右值不能在 “=” 的左侧。 从汇编角度去理解这个问题的话,就很好理解了,左值是一个内存单元里的数据,我们可以直接寻址找到它,而右值是一个立即数或者是寄存器里的值。 C与C++ ...
分类:
其他好文 时间:
2018-01-01 19:37:38
阅读次数:
173
2017 2018 1 20155319 《信息安全系统设计基础》第14周学习总结 3.1历史观点 1.Intel处理器的模型 8086 80286 i386 i486 Pentium PentiumPro Pentium II Pentium III Pentium 4 Pentium 4E Co ...
分类:
其他好文 时间:
2017-12-24 22:59:14
阅读次数:
325
深入理解计算机系统第三章 程序的机器级表示 练习题解析 3.1 | 操作数 | 值 | 注释 | | | | | |%eax|0x100|寄存器| |0x104|0xAB|绝对地址| |$0x108|0x108|立即数| |(%eax)|0xFF|地址0x100| |4(%eax)|0xAB|地址0 ...
分类:
其他好文 时间:
2017-12-17 23:43:55
阅读次数:
1253
.386 ;386处理器 .model flat,c ;保护模式下运行,可与C连接 .stack 100h ;堆栈大小 .data ;数据段标记 num1 sdword ? ;singned double word num2 sdword ? ;dword(32bit)、... ...
分类:
编程语言 时间:
2017-10-08 18:06:01
阅读次数:
244
最基本的传送指令: MOV 目的操作数,源操作数 注意点: 1)源操作数跟目的操作数之间的位数必须一致 2)立即数跟寄存器CS及IP不可以作为目的操作数 3)源操作数跟目的操作数不能同时为内存单元,也不能同时为立即数 4)用BP来间接寻址时,默认的段寄存器是SS,其余寄存器的间接寻址时,其默认的段寄 ...
分类:
其他好文 时间:
2017-09-30 00:39:59
阅读次数:
185