汇编语言程序设计基础知识一

news/2024/11/29 0:40:55/

一、计算机语言

二、计算机运算基础

三、微型计算机的结构

1、8086微型处理器的结构

1.1、内部结构

执行单元(EU):

计算指令将要寻址的内存单元的有效地址,然后送到总线接口单元

完成指令规定的操作

总线接口单元(BIU):

根据EU的请求,形成实际地址,完成CPU与存储器或I/O接口之间的数据传送

1.2、寄存器和标志

1.2.1、通用寄存器

16位

存放一般性数据

主要功能:保存CPU分析和执行时产生的中间结果

说明
AX = AH + AL主累加器
BX = BH + BL基址寄存器
CX = CH + CL计数寄存器
DX = DH + DL数据寄存器
1.2.2、指针与变址寄存器
说明
SP堆栈指针
BP基址指针
SI源变址寄存器
DI目的变址寄存器
IP指令指针
1.2.3、段寄存器
说明
CS代码段寄存器
SS堆栈段寄存器
DS数据段寄存器
ES附加段寄存器
1.2.4、标志寄存器
说明
CF进位标志,当向最高位进位和借位时为1,可用来判断无符号数是否发生溢出
OF溢出标志,反映有符号数是否发生溢出
AF辅助进位标志,第三位向前的进位或借位
PF奇偶标志,低八位中1的个数是奇数还是偶数,偶数为1
SF符号标志,最高位的状态
ZF零标志,结果为0则为1
1.2.5、双符号位

对参与运算的数据扩展一位符号位,拓展的符号位与原符号位相同

如果结果的双符号位一致,则没有发生溢出,反之,发生溢出

1.3、寻址方式概述

1.3.1、基本知识

存储器是一维线性结构

内存单元的地址(物理地址或实际地址)

存储单元的内容:一个存储单元的有效信息。存储器的内容是取之不尽的,取出后该单元仍保持原来的内容不变,只有存入新的信息后,原来的信息自动消失

1.3.2、8086系统存储器的机构特点

可寻址空间:1MB(20位)

存储方式:按字节存储,20位

一个字节八位,一个字等于两个字节16位

1.2.3、分段结构

为什么?以8086为cpu的计算机的内存最大容量为1MB,需要20位物理地址,但是8086是16位cpu,20位存储器地址无法直接通过16位寄存器给出

什么是?将1MB的存储空间划分为长度不超过64KB的逻辑段,段内地址连续,段与段之间相互独立,每个段有一个基本地址(段首地址),叫做段地址,段内存储单元地址通过段地址+段内偏移地址(该段距离段地址的字节数)得到

1.2.4、实际地址的产生

逻辑地址:

段基址和段内偏移地址组成

段基址:段内偏移地址

实际地址(物理地址):

存储器的绝对地址,20位,

= 段基址 * 16 + 段内偏移地址

= 段基址 * 10H + 段内偏移地址

段首地址

段基址 * 16

1.4、寻址方式

1.4.1、固定寻址

指令要存做的数据在指令中没有明确给出,当隐含在指令中

1.4.2、立即寻址

指令要操作的数据包含在指令码中

1.4.3、寄存器直接寻址

在指令给出寄存器的名字,要操作的数据在该寄存器中

1.4.4、存储器寻址
1.4.4.1、存储器直接寻址

[ 有效地址 ]

1.4.4.2、寄存器间接寻址

[ BX/SI/DI ]

1.4.4.3、基址寻址

[ BX+位移量 ]

[ BP+位移量 ]

1.4.4.4、变址寻址

[ SI+位移量 ]

[ DI+位移量 ]

1.4.4.5、基址变址寻址
1.4.5、注意

在存储器寻址方式中只给出了偏移地址,段地址是隐含的,一般是DS,只有基址寄存器是BP时,段寄存器是SS

除源操作数为立即寻址方式外,其中一个操作数的寻址方式必须是寄存器直接寻址

四、汇编语言

1、汇编语句格式

1.1、字符集

1.2、格式

[ 标号 ] 操作符 操作数 [ ;注释 ]

标号:程序设计人员自己定义的标识符号,用于表示内存单元的地址

标号的规则:

第一个字符不能是0~9的数字,机器指令语句中标号必须以冒号结束,伪指令语句中的标号不允许以冒号结束

标号的本质:内存单元的逻辑地址

标号的三个属性:

1、段值属性:在数据段中定义的标号段值是DS的值,在代码段中定义的标号的段值是CS的值,可以用SEG取得

2、偏移量属性:标号所在段其实偏移地址到它的存放位置之间的字节数,可以用OFFSET取得

3、类型属性:DB、DW等,也可以是表示机器指令代码中的地址时的NEAR、FAR,可以用TYPE得到

操作符:可以是指令助记符、伪指令助记符、宏指令符号

操作数:操作符的对象,可以是数据本身、标号、寄存器名、算术表达式

2、汇编语言中数据的表示方法

2.1、数据在机内的表示

数据的浮点表示法(IEEE754)——以短实数为例

eg. 36.625

(1)转换为二进制 100100.101

(2)规格化后为 1.00100101 * 2^5

(3)阶码为(规格化后的2的多少次方为阶码) 101

(4)加过余量127后(阶码加) 0111 1111 + 0000 0101 = 1000 0100

(5)尾数(23位,规格化后的小数部分,不足23位用0补齐)001 0010 1000 0000 0000

(6)符号&阶码&尾数 0100 0010 0001 0010 1000 0000 0000

​ 4 2 1 2 8 0 0

判断浮点数的大小:

先看符号,再看阶码(阶码大则绝对值大),最后看尾数

2.2、数据的书写形式

3、运算符

3.1、算术运算符

±*/

MOD:取余

SHL:左移

SHR:右移

3.2、逻辑运算符

AND、OR、XOR、NOt

3.3、关系运算符

说明
EQ相等
NE不等
LT小于
GT大于
LE小于等于
GE大于等于

3.4、分析算符

说明
SEG取标号所代表的地址的段地址
OFFSET取标号所代表的地址的偏移量
TYPE取标号所代表的内存单元的类型值
SIZE取变量分配的内存单元的字节数
LENGTH取变量分配的内存单元数(若定义的字节类型的数据则为几个字节;若定义的子类型的数据则为几个数据)

3.5、组合算符

说明格式
PTR用来建立或临时改变存储器操作数的类型NEWT PTR 标号或存储单元
THIS通常与EQU伪指令连用,用来定义新的标号,其段基址和偏移量和紧跟其后的标号相同THIS 类型 eg. A2 EQU THIS BYTE B1 DW 3421H

3.6、字节分离算符

用于将一个表达式的高字节和低字节分开

LOW 取低字节

HIGH 取高字节

4、伪指令

4.1、符号定义伪指令

给自定义符号定义一个数值或定义为其他符号名

等价伪指令EQU:

格式: 标识符 EQU 表达式(机器指令助记符、为指令助记符、寄存器名称、各种运算符号、常数)

等号伪指令=:

格式: 标识符 = 表达式(表达式、常数)

区别:

1、=伪指令只能代表表达式或常数,不能是指令助记符

2、EQU定义的标识符不能重定义,而=定义的可以

4.2、数据定义伪指令

说明
DB字节,8位
DW字,16位
DD双字,32位
DQ
DT

格式: 标号 DB/DW/DD/DQ/DT 表达式

DUP 复制操作符:

格式:个数 DUP(预置的值)

在汇编语言的指令语句中适用标号是,必须与其类型相匹配

4.3、段定义伪指令

说明
SEGMENT段首说明伪指令
ENDS段结束伪指令
ASSUME段假定伪指令
ORG代码定位伪指令

4.4、其他伪指令

说明格式
EVEN使位置计数器定位在偶地址单元
.RADIX改变默认进制
NAME为程序模块命名
END源程序结束END [ 标号 ]

http://www.ppmy.cn/news/190540.html

相关文章

如何使用扫描仪扫描文字

如何使用扫描仪扫描文字 小张本来是想跟着项目组做项目,但是因为项目组的文件很多,所以现在张小姐每天的工作就是处理文件,根本就没有时间做其他的工作,这样让张小姐很不甘心。但是领导交待的任务没有完成怎么好去做别的事情呢。这…

Nessus: 漏洞扫描器-网络取证工具

Nessue 要理解网络漏洞攻击,应该理解攻击者不是单独攻击,而是组合攻击。因此,本文介绍了关于Nessus历史的研究,它是什么以及它如何与插件一起工作。研究了Nessus的特点,使其成为网络取证中非常推荐的网络漏洞扫描工具…

内网渗透扫描器详解

内网渗透扫描器详解 扫描器作用定义 扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。 工作原理是扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类…

服务器 新文件病毒扫描,部署 Seafile 专业版服务器 – 病毒扫描 - Seafile 服务器用户手册...

注意:自从 Seafile 5.0.0 版本以后,所有的配置文件转移到了统一的配置文件目录 conf 。详情 在Seafile专业版 4.4.0(及以上)版本中,Seafile可以在后台扫描上传文件中的恶意内容。配置为定期运行后,扫描程序将扫描所有现有库。此后…

计算机快速扫描技术的优点是,与传统扫描仪比较起来高拍仪的优点有哪些?

原标题:与传统扫描仪比较起来高拍仪的优点有哪些? 传统扫描仪是一款计算机外部仪器,通过捕捉图像可以转化成计算机显示,编辑,输入输出的设备,对照片,文本页面,图纸,找寻底…

上市企业小米科技应用的发票扫描仪

上市/小米/操作系统 伴随着雷军的一声不标准的英语:ARE YOU OK?小米准备上市了。业内人士称,小米IPO集资至少100亿美元,或将成为今年全球最大规模IPO。很多非专业财务人员开始替雷大爷算账,看雷大爷会不会超过马云爸爸…

java评卷系统,评卷管理系统 扫描仪阅卷系统

评卷管理系统 扫描仪阅卷系统 网上阅卷系统包括: 系统管理模块:完成阅卷系统的客户管理,权限分配,考卷的分值设定、题目设定、标准答案、教师阅卷分配等功能。 试卷扫描模块:完成考生原始考卷的扫描,并将结…

漏洞扫描工具MySQL_打造一款自动扫描全网漏洞的扫描器

本文作者:langzi 在渗透测试中,扫描器必不可少,毕竟目标很多,需要检测点也很多,不可能全部手工搞定的,所以很多渗透者都有自己的自动化工具或者脚本,这里就为大家分享一款由我自己开发的一个自动化全网漏洞扫描工具。 扫描原理 由 Python+Mysql 打造的扫描器,主要目的是…