汇编语言第一张笔记

来源:互联网 发布:手机淘宝平台通知 编辑:程序博客网 时间:2024/04/27 16:33

计算机芯片运行时,它读取存储在内存中的指令码(一个或多个字节,指示处理器完成某个任务),指令码所需数据在内存中,也从内存中读取。

以指针区别数据和指令码。

instruction pointer用于帮助处理器理解哪些指令码已经处理过,接着处理哪些;包括改变指令指针位置的指令。

数据指针data pointer帮助处理器了解内存中数据区域(堆栈)的起始位置。数据进入,指针“向下移动”。


指令码包含错干信息片段,明确指明处理器要完成什么操作。

每条指令都必须至少包含一个字节的operation code。(处理器预定义好的)

指令码格式:

1.可选指令前缀;

2.操作码

3.可选修饰符

4.可选数据元素


寄存器是处理器芯片内的组件,用于临时存储处理器正在处理的数据。


指令前缀:

1.锁定前缀(表示指令将单独使用共享内存区域)、重复前缀(重复,常常处理字符串);

2.段覆盖前缀(可覆盖定义了的段寄存器的指令),分支提示前缀(尝试向处理器提供程序在条件跳转遇见中最可能路径的线索);

3.操作数长度覆盖前缀(通知处理器,程序将在这个操作码内切换16位和32位的操作数长度。);

4.地址长度覆盖前缀(通知处理器程序将切换16位和32位的内存地址,程序将切换到另一种长度);


修饰符:

协助操作码来定义执行的功能中涉及到什么寄存器和内存位置:

1.寻址方式说明符(ModR/M)字节

2.比例-索引-基址(SIB)字节

3.1、2或4个地址移位字节


数据元素:

一些指令码从内存位置或者急促请你读取数据,一些指令码在其自身内包含数据。


IA32采用小字节序,比如1写为4字节16进制01 00 00 00(低位首先出现);


HLL(高级语言)分类:

1.编译语言

2.解释语言


编译程序步骤:

1.将HLL语句编译为原始指令码;

2.连接原始指令码来生成可执行程序;


汇编语言 定义变量:

1.指向一个内存位置的标记

2.内存字节的数据类型和默认值


堆栈是特殊的内存区域,保留用做程序中函数之间传递数据元素,也可以林仕德存储和检索。数据元素。(是计算机为应用程序保留的内存范围的结尾位置保留的内存区域。)

堆栈指针用于指向堆栈中的下一个内存位置以便放入和取出数据。


汇编语言至少要声明的段落:

1.数据段(声明为程序存储数据元素的 内存区域。静态)

2.bss段(静态内存段,包含用于以后在程序中声明的数据的缓冲区。用0填充。)

3.文本段(内存中存储汇编语言指令码的固定区域。)



原创粉丝点击