
汇编语言
文章平均质量分 61
Stephan14
这个作者很懒,什么都没留下…
展开
-
程序存储器 指令寄存器 程序计数器 地址寄存器
程序存储器(program storage):在计算机主存储器中专门用来存放程序,子程序的一个区域。指令寄存器(IR):用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段原创 2015-07-13 11:13:48 · 3463 阅读 · 0 评论 -
汇编程序--退出
#目的: 退出并向Linux内核返回一个状态码的简单程序#输入: 无#输出: 返回一个状态码.在运行程序后可通过输入echo $?来读取状态码#变量:# %eax保存系统调用号# %ebx保存返回状态#.section .data.section .text.globl _start_start:movl原创 2015-07-14 08:37:27 · 7106 阅读 · 0 评论 -
寻址方式
1. 立即寻址:操作数 = A 优点:节省时间 缺点:数的大小受到地址字段的限制2. 直接寻址:EA = A 即指令里保存的是操作数的地址3. 间接寻址:EA = (A)即指令里包含了了存储器的一个地址,该地址所指向的空间里保存了操作数的地址原创 2015-07-13 11:50:52 · 3786 阅读 · 0 评论 -
80x86寄存器详解
引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像 CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着 80x86 CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。同时在这里转载 2015-07-14 11:01:00 · 1087 阅读 · 0 评论 -
64位Linux系统编译32位汇编程序
64位Linux系统编译32位汇编程序的时候需要仿真32位系统的需求,发现使用-m32参数后,编译提示错误,如下:/usr/bin/ld: 未知的仿真模式: 32支持的仿真: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om i386pep i386pecollect2: error: ld returned 1原创 2015-07-18 17:17:35 · 2901 阅读 · 0 评论 -
汇编程序--文件操作
在介绍文件操作之前,我先介绍一下缓冲区。缓冲区是连续的字节块,用于批量的数据传输。一般缓冲区仅用于暂时存储数据,然后数据被缓冲区中读出并转换成便于程序处理的形式。注意,缓冲区的大小是固定的,由程序员设定的,例如:如果你想要一次读入500字节的数据,可以将500字节未使用的内存位置的地址发送给read系统调用,并将数字500发送给它,这样read调用的就知道数据的大小。在汇编中通过.bss来创建缓冲原创 2015-08-02 00:42:40 · 3636 阅读 · 0 评论