汇编语言知识点Word下载.docx

上传人:b****5 文档编号:17583199 上传时间:2022-12-07 格式:DOCX 页数:20 大小:56.85KB
下载 相关 举报
汇编语言知识点Word下载.docx_第1页
第1页 / 共20页
汇编语言知识点Word下载.docx_第2页
第2页 / 共20页
汇编语言知识点Word下载.docx_第3页
第3页 / 共20页
汇编语言知识点Word下载.docx_第4页
第4页 / 共20页
汇编语言知识点Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

汇编语言知识点Word下载.docx

《汇编语言知识点Word下载.docx》由会员分享,可在线阅读,更多相关《汇编语言知识点Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

汇编语言知识点Word下载.docx

段寄存器:

、、、

标志寄存器(/)

条件标志位:

溢出标志符号标志零标志

进位标志辅助进位标志奇偶标志

控制标志位:

方向标志中断标志陷阱标志

寄存器与存储器的比较:

寄存器:

在内部;

访问速度快;

容量小,成本高;

用名字表示;

没用地址

存储器:

在外部;

访问速度慢;

容量大,成本低;

用地址表示;

地址可用各种方式形成

第三章

寻址方式

操作数

所在位置

物理地址

()

格式

注意

1.立即寻址

存储器的代码段

5

只能用源操作数

操作数和源操作数的长度一致

2.寄存器寻址

寄存器

(唯一)

无 

字节寄存器只有

不能用指令改变,

源操作数和目的操作数的字长一致

3.直接寻址

存储器

 

段地址

+位移量

  

:

[2000H]

[2000H]

默认的段地址存储在中

遇到的段地址存储在

可以使用段跨越前缀

4.寄存器

间接寻址

+基址

/变址

[]

[]

可用的寄存器

不允许使用、、

存放偏移地址()

和的字长一致

使用时,默认的数据段是,

其余都是

5.寄存器

相对寻址

[]

[]

6.基址变址寻址

+变址

[][]

7.相对

基址变址

[][]

可以使用段跨越前缀 

数据传送指令

传送指令内部寄存器之间的数据传送

指令格式:

执行操作:

()¬

()

注意:

*、不能同时为段寄存器,´

*、不能同时为存储单元

*立即数不能直接送段寄存器,2000H´

*不能是立即数和

*不影响标志位

交换指令

1,2执行操作:

(1)«

(2)

例:

[],

*两个操作数字长一致

*两个操作数都不能是段寄存器

*两个操作数都不能是立即数

*两个操作数不能同时是存储单元

*可以采用除立即寻址方式外的任何一种寻址方式。

*不影响标志位

地址传送指令、、

1.有效地址送寄存器指令:

()¬

2.指针送寄存器和指令:

(2)相继二字®

寄存器、

3.指针送寄存器和指令:

寄存器、

注意:

*源操作数必须为存储器操作数

*目的操作数必须是一个16位通用寄存器,不能是段寄存器

*源操作数可以是除立即寻址和寄存器寻址以外的任意一种寻址方式

堆栈操作指令、

1.进栈指令:

执行操作:

()–2(()+1,())¬

出栈指令:

(()+1,())()¬

()+2

堆栈:

‘先进后出’的存储区,段地址存放在中,在任何时候都指向栈顶,进出栈后自动修改。

*堆栈操作必须以字为单位。

*不能用立即寻址方式1234H´

*不能是´

堆栈的用途:

临时保存寄存器的内容。

……;

其间用到、、

;

后进先出

标志操作指令

、、、、、、、、、、

标志传送指令:

1.标志送指令:

执行操作:

(的低字节)

2送标志寄存器指令:

(的低字节)¬

*不影响标志位*影响、、、、

标志进栈指令:

()-2(()+1,())¬

标志出栈指令:

和经常一起联用,完成保护、维护标志寄存器的内容或改变标志位的值。

标志位操作指令:

清进位标志指令←0

置进位标志指令←1

进位标志取反指令←

清方向标志指令←0

置方向标志指令←1

清中断允许标志指令←0

置中断允许标志指令←1

*只影响本指令指定的标志

加减法指令:

加法指令:

()+()

带进位加法指令:

()+()+

加1指令:

()+1

*除指令不影响标志外,均对状态标志位有影响。

各加法指令对条件标志位的影响:

1,结果为负1,结果为01,和的最高有效位有向高位的进位

1,两个操作数符号相同,而结果符号与之相反

位表示无符号数相加的溢出。

位表示带符号数相加的溢出。

减法指令:

()-()

带借位减法指令:

()-()-

减1指令:

()-1

求补指令:

-()

比较指令:

(1)-

(2)

各减法指令对条件标志位()的影响:

1,被减数的最高有效位有向高位的借位或1减数转换为加法运算时无进位

1两个操作数符号相反,而结果的符号与减数相同

位表示无符号数减法的溢出。

位表示带符号数减法的溢出。

指令对的影响

0,操作数为01,操作数为-128(字节运算)或-32727(字运算

乘除运算指令

无符号数乘法指令:

带符号数乘法指令:

字节操作数()¬

()*()

字操作数(,)¬

*目的操作数必须是累加器

*()为隐含的乘数寄存器。

*()为隐含的乘积寄存器。

*不能为立即数。

*除和外,对条件标志位无

乘法指令对的影响:

指令:

=00乘积的高一半为零

11否则

=00乘积的高一半是低一半的符号扩展

()=16A5H,()=0611H

(1);

(,)¬

16A5*0611=008955

()=0089H()=55H1

(2);

A5*11Þ

5B*11=060BÞ

F9F5

()=0F9F5H1

无符号数除法指令:

带符号数除法指令:

字节操作()¬

()/()的商()¬

()/()的余数

字操作()¬

(,)/()的商()¬

(,)/()的余数

*()为隐含的被除数寄存器。

*()为隐含的商寄存器。

*()为隐含的余数寄存器。

*对所有条件标志位均无定义。

类型转换指令

®

若()的最高有效位为0,则()=00H,若()的最高有效位为1,则()=

若()的最高有效位为0,则()=0000H,若()的最高有效位为1,则()=

()=045H

()=0045H;

()=0()=045H

*无操作数指令*隐含对或进行符号扩展*不影响条件标志位

逻辑运算指令

逻辑非指令:

*不能为立即数

()*不影响标志位

*

无定义

逻辑与指令:

()Ù

逻辑或指令:

()Ú

异或指令:

()"

测试指令:

(1)Ù

(2)

移位指令

逻辑左移,

逻辑右移,

算术左移,(同逻辑左移)

算术右移,

循环左移,

循环右移,

带进位循环左移,

带进位循环右移,

*可用除立即数以外的任何寻址方式

*1,,1

>

1,,,;

以为例

*条件标志位:

=移入的数值11时,最高有效位的值发生变化

01时,最高有效位的值不变

移位指令:

、、根据移位结果设置,无定义

循环移位指令:

不影响、、、

控制转移指令:

·

无条件转移指令

条件转移指令

/、/、/、/、

/、

循环指令、/、/

子程序调用和返回指令、

中断与中断返回指令、、

与转移地址有关的寻址方式:

用来确定转移指令及转子指令的转向地址

段内寻址段内直接寻址

段内间接寻址[]

段间寻址段间直接寻址

段间间接寻址[]

无条件转移指令:

段内直接短转移:

()←()+8位位移量

段内直接近转移:

()←()+16位位移量

段内间接转移:

()←()

段间直接远转移:

()←的段内偏移地址()←所在段的段地址

段间间接转移:

()←()()←

(2)

条件转移指令

*只能使用段内直接寻址的8位位移量*不影响标志位

(1)根据单个条件标志的设置情况转移  

格式测试条件

()=1

()=0

=1

=0

(2)比较两个无符号数,并根据比较结果转移

<()=1

≥()=0

≤()∨=1

>()∨=0

*适用于地址或双精度数低位字的比较

(3)比较两个带符号数,并根据比较结果转移*适用于带符号数的比较

<()"

≥()"

≤()("

)∨=1

>()("

)∨=0

(4)测试的值为0则转移

格式测试条件

()=0

循环指令

*中存放循环次数

*只能使用段内直接寻址的8位位移量*不影响标志位

/

执行步骤:

(1)()←()–1

(2)检查是否满足测试条件,如满足则()←()+8位位移量,实行循环;

不满足则不变,退出循环

循环指令:

测试条件:

()¹

0

为零或相等时循环指令:

()

1且()¹

不为零或不相等时循环指令:

0且()¹

求首地址为的M个字之和,结果存入

M

0

:

[]

2

串处理指令

串处理指令·

串重复前缀

//

从串取指令:

(字节)

(字)

字节操作:

()←(()),()←()±

1

字操作:

2

*指令一般不与联用

*源串一般在数据段中(允许使用段跨越前缀来修改),

目的串必须在附加段中

*不影响条件标志位

存入串指令:

(())←(),()←()±

串传送指令:

[],:

(1)(())←(())

(2)字节操作:

()←()±

1,()←()±

()←()±

2,()←()±

方向标志0时用+,1时用-。

串扫描指令:

()-(()),()←()±

串比较指令:

(1)(())-(())根据比较结果置条件标志位:

相等1;

不等0

(与/配合工作)

(1)如()=0则退出,否则转

(2)

(2)()¬

()-1

(3)执行//

(4)重复

(1)~(3)

将数据段中的整串数据传送到附加段中。

源串(数据段)→目的串(附加段)

执行之前,应先做好:

(1)源串首地址(末地址)→

(2)目的串首地址(末地址)→

(3)串长度→

(4)建立方向标志(使0,使1)

/(与和配合工作)

(1)如()=0或0

(1)则退出串操作,否则转

(2)

(2)()←()-1

(3)执行/

从一个字符串中查找一个指定的字符

‘’

‘T’

8

比较两个字符串,找出它们不相匹配的位置

1

反向传送

1+7

2+7

第四章

标号和变量

(1)标号和变量都是标识符。

标识符组成:

字母,数字0~9,专用字符?

.@_$

标识符的组成规则:

最大长度为31,第一个字符不能是数字,不区分字母的大小写,不能是汇编语言的保留字

(2)标号和变量的异同:

不同:

标号:

用于汇编指令语句中,以冒号结束,在代码段中定义,经常在转移指令或指令

变量:

用于伪指令语句中,不允许有冒号,在数据段或附加段中定义,经常在操作数字段出现

相同:

都有三种属性:

段属性、偏移属性、类型属性

伪操作

是汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、

存储器分配、指示程序开始结束等功能。

处理器选择伪操作段定义伪操作

程序开始和结束伪操作数据定义及存储器分配伪操作

表达式赋值伪操作地址计数器与对准伪操作

基数控制伪操作

段定义伪操作

定义数据段

定义附加段

定义代码段

,

;

段地址®

段寄存器

说明:

语句序列

段假定伪指令

格式:

段寄存器名:

段名(这里只是一种指明,段寄存器的实际值,必须在程序中使用传送指令来赋值,除外)

数据定义及存储器分配伪操作:

[变量]助记符操作数[,操作数,…][;

注释]

助记符:

10,4,10H,?

100,1005,?

伪操作:

50(?

表达式名表达式

9

18

[8]

1、2(表达式中的标号和变量要先定义,例如:

2、“=”伪操作(允许重复定义)

……

=7

数值回送操作符:

、、、、

/变量/标号

功能:

回送变量或标号的偏址/段址

变量/标号/常数

常数

4

6

8

10

-1

-2

变量

回送由定义的变量的单元数,其它情况回送1

*

100(?

100

200

属性操作符:

、段操作符、、、、

类型表达式[],5

段操作符:

[],

标号

类型

1234H

2

和1234H

第五章

分支程序设计

(1)条件控制

(2)逻辑尺控制

(3)地址跳跃表(值与地址有对应关系的表)

第六章

调用指令

段内直接近调用:

()←()-2

(()+1,())←()

()←()+16位位移量

段内间接近调用:

()←()

段间直接远调用:

()←偏移地址

()←段地址

段间间接远调用:

(()+1,())←()

()←

(2)

返回指令

段内近返回:

()←(()+1,())

()←()+2

段内带立即数近返回:

段间远返回:

段间带立即数远返回:

过程定义伪操作

过程名()

过程名

(1)属性:

调用程序和子程序在同一代码段中(段内调用)

(2)属性:

调用程序和子程序不在同一代码段中(段间调用)

子程序调用与返回

子程序调用:

隐含使用堆栈保存返回地址

(1)保存返回地址

(2)转子程序

子程序返回:

保存与恢复寄存器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1