汇编语言期末复习不挂科——知识点总结(一)

数据的表示和类型


二进制:二进制的表示元素是0和1,书写时,在数据后面紧跟一个字母B,如:0101B

八进制:八进制的表示元素是:0-7,书写时,在数据后面紧跟字母Q,如1234Q

十六进制:基本元素是0-9,A-F,其中A-F依次代表10-15

▮书写时,数据后面紧跟字母H,当十六进制的第一个字符是字母时,在其前面必须添加一个“0”


寄存器


16位寄存器:

4个数据寄存器:AX,BX,CX,DX,每个寄存器又可分为2个8位寄存器

数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间

汇编语言期末复习不挂科——知识点总结(一)


2个变址寄存器:DI和SI

它们可做一般的存储器的指针使用,在字符串操作指令的执行过程中,对它们有特定的要求,且具有特殊的功能


2个指针寄存器:SP和BP

(1)BP为基指针寄存器,用它可直接存取堆栈中的数据

(2)SP为堆栈指针寄存器,用它只可访问栈顶


4个段寄存器:ES,DS,CS,SS

汇编语言期末复习不挂科——知识点总结(一)

汇编语言期末复习不挂科——知识点总结(一)


  • 1个标志寄存器:FLAG
  • 1个指令指针寄存器:IP


物理地址的形成模式

逻辑段的起始地址(俗称段地址)必须是16的倍数,即最低4位二进制必须全为0;

汇编语言期末复习不挂科——知识点总结(一)

物理地址PA=段地址*16+偏移量


段寄存器的引用

取指令所用的段寄存器和偏移量一定是用CS和IP;

堆栈操作所用的段寄存器和偏移量一定是SS和SP;

串操作的目标操作数所用的段寄存器和偏移量一定是ES和DI;

汇编语言期末复习不挂科——知识点总结(一)

汇编语言期末复习不挂科——知识点总结(一)

操作数的寻址方式

汇编语言期末复习不挂科——知识点总结(一)

1.立即寻址方式:MOV AH,80H ADD AX,1234H

2.寄存器寻址方式 :MOV AH,BH

3.直接寻址方式:MOV AX,[1234H]

4.寄存器间接寻址方式:MOV BX,[DI]

5.寄存器相对寻址方式:MOV BX,[SI+100H]

6.基址加变址寻址方式:MOV BX,[BX+SI]

7.相对基址加变址寻址方式:MOV BX,[BX+SI+100H]

汇编语言期末复习不挂科——知识点总结(一)

合法标识符

标识符最多由31个字母,数字及规定的特殊字符(?@ _ $)等组成,不能用数字开头

关键字不能作为标识符


常见的偏移量伪指令

Even、Align、org

Even 偶对齐伪指令 本伪指令下面的内存变量从下一个偶地址单元开始分配

Align NUM,NUM必须是2的幂

ORG 数值表达式,本伪指令下面的内存变量从该“数值表达式”所指定的偏移量开始分配。


重复说明符

count DUP(表达式,表达式…)

例如:BUFFER DB 100DUP(?),重复100个?


LEA指令和OFFSET的联系与区别

相同:都是取偏移指令的操作

注意事项:1.lea、offset指令的源操作数必须是内存操作数

2.lea、offset指令的目的操作数必须是16位寄存器

3.lea指令不影响状态标志寄存器内容。

区别:4.offset指令的源操作数不能是下标(类似数组),lea可以。

5.offset在汇编时生效,lea在指令执行时才生效。


内存变量和标号的属性

1.类型属性操作符:TYPE是返回该变量所占字节数,或标号的远近类型。

汇编语言期末复习不挂科——知识点总结(一)

2.长度属性操作符:LENGTH是针对内存变量的操作符,它返回重复操作符DUP中的重复数。如果有嵌套的DUP,只返回最外层的重复数。如果没有DUP,则返回1

3.容量属性操作符:SIZE是针对内存变量的操作符

SIZE(变量)=LENGTH变量×TYPE变量


强制属性操作符

数据类型 PTR 地址表达式

例如:MOV byte ptr[BX],1H


存储单元别名操作符

操作符THIS的一般格式为:<变量名>equ this <类型>

<变量名>DB|DW|DD <表达式>

例如:WBUFFER EQU THIS WORD

BUFFER DB 20DUP(?)


进制伪指令RADIX

.RADIX exp 伪指令前面要用点开始,exp的值必须是[2,16]内的一个整数

.radix 8

B1 DB 10,11,12 这三个数是八进制


等价语句

符号名 EQU 表达式 ,其作用是用左边的符号名来代表右边的表达式

例如:GREETING EQU ‘How are you!’

在该定义之后,就可以使用符号GREETING 来代表字符串‘How are you!’


指令系统


指令系统是CPU指令的集合,CPU除了具有计算功能的指令外,还有一些实现其他功能的指令,也有为某种特殊的应用而增设的指令。

指令按其功能分成以下几大类:数据传送指令、标志位操作指令、算术运算指令、逻辑运算指令、移位操作指令、位操作指令、比较运算指令、循环指令、转移指令、条件设置字节指令、字符串操作指令、ASCII-BCD码运算调整指令和处理器指令等。


上一篇:缓存穿透 缓存雪崩


下一篇:MariaDB ColumnStore一些限制和BUG总结