微机原理知识点总结4

微机原理与接口技术知识点总结4


参考图书:《微机原理与接口技术(第三版)》洪永强
内容都是手打的,主要是对书内的知识点进行一个快速的浏览。
主要是8086的汇编

第四章

一、概念

1):汇编语言:介于机器语言和高级语言之间的计算机语言。是一种用符号表示的面向机器的程序设计语言。

2):汇编语言程序/源程序:用汇编语言编写的程序

3):目标程序:源程序对应的机器语言程序

4):汇编:将一个汇编语言程序转换成相应目标程序的翻译过程

5):汇编程序:具有汇编功能的应用程序

6):指令语句:是可执行语句,在汇编中要产生相应的目标代码,CPU根据这些代码才能执行相应的操作。每一条指令语句表示计算机具有的一个基本能力,而这种能力是在目标程序运行时完成的

7):伪指令语句:是不可执行语句,在汇编中不产生目标代码,用于指示汇编程序如何汇编源程序,利用它定义和说明常量和变量的属性及存储器单元的分配等。伪指令的功能是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。

8):宏定义语句:是以一个宏名定义的一段指令序列,在汇编中凡是出现宏指令语句的地方,对会有相应的指令语句序列的目标代码插入。宏指令语句可以看作是指令语句的扩展。相当于多条指令语句的集合,它包括宏定义、宏调用、宏扩展三部分。

9):常量:程序运行过程中不变的量,没有任何属性。

10):符号常量:常量用符号名来代替。如:COUNT EQU 8/COUNT=8

11):变量:在程序运行期间随时可以修改的数据。

12):标号:一条指令的符号地址

13):伪指令:用来指示汇编程序应该如何去处理汇编语言的源程序。

二、知识点

1):源程序的结构特点
  ①:汇编程序通常由若干段组成,段由伪指令SEGMENT和ENDS定义,各段顺序任意,段的数目依需要确定,原则上不受限制。数据段通常在代码段前面定义。程序代码段部分开始要设置段寄存器,要初始化DS内容
  ②:段由若干语句组成,语句以指令为主体而构成。一条语句写在一行上,书写时语句的各部分应尽量对齐
  ③:汇编语言程序中至少要有一个启动标号,作为程序开始执行时目标代码的入口地址。启动标号常用START、BEGIN、MAIN等命名
  ④:为增加程序的可读性,可在;后加上注释

2):指令的标号表示一条指令的符号地址,后面必须带有一个冒号。

3):汇编语言能识别的数据有:常量、变量、标号

4):变量的三个属性
  ①:段属性:段基地址
  ②偏移属性:偏移地址
  ③:类型属性:表示变量占用的存储单元的字节数。DB、DW、DD

5):标号的三个属性
  ①:段属性:段基地址
  ②偏移属性:偏移地址
  ③:距离属性:分为 远(FAR):段间 近(NEAR):段内

6):算术运算符(七种)、逻辑运算符(四种)、关系运算符(六种)

7):数值返回运算符:SEG、OFFSET、TYPE、LENGTH、SIZE

8):CS和ES不能被跨越,堆栈操作时SS也不能被跨越

9):临时指定数据类型(强制类型转换):类型 PTR 地址表达式

10):指定新类型运算符 THIS 类型或属性

11):取高位字节/低位字节 HIGH/LOW

12):?表示预留,即原来存储空间的内容不变

13):用DW或DD位操作把变量或标号的便宜地址(DW)或整个地址(DD)存入存储器。用DD位操作存入地址时,第一个字为偏移地址,第二个字为段地址。(P99)

14):n DUP(?)

15):定位类型:表示某段装入内存时,对段的起始边界有何要求
  ①:BYTE:表示本段起始单元可以从任一地址开始
  ②:WORD:表示本段起始单元从一个偶字节地址开始
  ③:PARA:这是隐含选择,表示本段起始地址从一个节的边界开始。一节为16字节。
  ④:PAGE:表示本段起始地址从一个页的边界开始。一页为256字节。

16):组合类型:表示多个程序模块连接时,本模块与其他模块的同名段如何组合。
  ①:NONE
  ②:PUBLIC
  ③:COMMON
  ④:STACK
  ⑤:MEMORY
  ⑥:AT表达式

17):类别名可以是任何合法的名字,必须用单引号括起来。

18):ASSUME伪指令语句只是建立当前定义的段名与段寄存器之间的联系,不能把各个段的段基地址装入相应的段寄存器中。

19):DS、ES、SS的装入可以通过寄存器赋初值的指令来完成。但是段寄存器不能用立即数寻址方式直接传送,装入段基址必须借助通用寄存器进行间接传送。

20):CS、IP的装入通常是按照结束伪指令指定的地址来完成的(自动赋值)。

21):过程名实际上是过程入口的符号地址。过程可以嵌套,也可以递归。

22):$表示位置计数器的现行值。表示本条指令(不一定要在运行)目标代码的首字节偏移量(P105)

23):PC指针是指向当前运行的指令的地址

24):ORG是对位置计数器的控制命令。指定程序从哪里开始

25):宏定义
  ADDM MACRO OPR1,OPR2,RESULT
  (宏名)MOV AL,OPR1
      ADD AL,OPR2
      MOV RESULT,AL
  ENDM
  宏调用:ADDM 88,36,SUM

26):宏指令和过程的区别
  ①:宏调用语句由宏汇编程序识别,并完成响应的处理
调用过程的CALL语句是在执行程序时完成的
  ②:宏是一种替换,汇编过程中,要将宏指令所代替的程序段汇编成相应的机器代码,并插入到源程序的目标代码中。每调用一次宏,就要插入一次,所以宏调用不能缩短目标代码长度
  子程序(过程)汇编后的机器代码与主程序分开独立存在,目标代码在存储器中只保存一份,因此子程序(过程调用)能有效缩短代码长度(节省内存空间)。
  ③:过程调用需要保护断点和现场,执行完成后还要恢复现场和断点,这些操作需要耗费CPU时间。
宏调用不需要这些操作
  ④:宏允许修改参数,过程不便于修改参数

27):总结:宏是编译时进行替换的规则,子程序是CP指针的跳转。宏是空间换时间,子程序是时间换空间。宏可以修改参数,子程序不变修改参数。

28):当需要多次执行的程序段较长,对速度要求不高,并不要求修改参数的情况下用过程调用(子程序)。否则采用宏调用。

29):程序设计步骤:
  ①分析问题
  ②:建立数学模型
  ③:确定算法
  ④:绘制流程图
  ⑤:分配内存空间
  ⑥:编制程序与静态检查
  ⑦:上机调试
  ⑧:试运行和分析结果
  ⑨:整理资料投入运行

30):分支程序设计注意点:
  ①:选择合适的转移指令,否则可能不能转移到预定的程序分支
  ②:要为每个分支安排出口,否则将导致程序运行混乱
  ③:应把各分支的公共部分尽可能集中到分支前或分支后的程序段中
  ④:程序中分支出现顺序必须与流程图中一致
  ⑤:无条件转移指令的转移范围不受限制,条件转移指令只能在-128~+127字节范围内转移
  ⑥:JMP指令类似于高级语言中的GOTO语句,能不用就不用
  ⑦:调试程序时,应尽可能对每个分支进行测试

31):子程序定义 PORC ENDP

32):子程序设计注意点:
  ①:现场保护和返回
  ②:子程序的嵌套和递归调用
  ③:参数传递(通过寄存器、变量、地址表、堆栈等)
  ④:编写子程序调用方法说明

33):混编:被调用的过程或函数应预先说明为外部变量。调用程序则要说明要引用的外部模块名。参数传递一般通过堆栈。

34):C语言嵌入汇编:以ASM声明一个嵌入汇编指令。如:ASM ADD AX,BX

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值