汇编语言期末复习总结

第一章 汇编基础知识

本章目标:

  1. 理解汇编语言的特点和应用场合;
  2. 掌握计算机内部的数据表示,特别是补码的表示、特殊值的表示,以及不同编码的数据位数扩展方法;
  3. 熟悉补码的加减法运算规则,并能应用
  4. 熟悉常见ASCII码和BCD码
  5. 理解汇编语言中的数据类型

1.1 微型计算机

1、微型计算机系统包括硬件系统软件系统
硬件系统包括计算机和外设,软件系统分为系统软件和应用软件。
CPU(微处理器)包括运算器、控制器、内部总线、寄存器组。
应用:要会举外设的例子(键盘鼠标打印机等),同时要注意针对CPU的外设就是除了CPU以外的所有东西(包括内存什么的)

2、微型计算机主要性能指标

  • 主频:CPU基本时钟频率
  • 时钟周期:CPU工作的最小时间单位
  • 字长:CPU一次能处理的二进制信息的位数(8086是16位)

1.2 汇编语言及其特点

1、机器语言

  • CPU只能识别和执行机器指令,即二进制代码。
  • 不同的CPU有不同的指令系统。
  • 由于机器语言直接作用于硬件,所以执行效率很高,但编写、读取都很麻烦。

2、汇编语言

  • 汇编语言与机器语言一一对应
  • 汇编语言指令系统包括汇编指令、伪指令、宏指令

汇编程序和汇编语言源程序的区别?

汇编语言源程序是我们所写的代码,而汇编语言源程序其实相当于高级语言的编译器,在汇编中叫做汇编器,也叫汇编程序,是用来编译源程序的软件。

1.3 数据表示

1、负数补码

所有位都为1的时候是-1;真值为0的时候是该范围下的负数最小值。也就是跟整数是反着的(毕竟计算机不知道什么正负)

2、有符号数的位数扩展方法

  • 对于原码扩展,不管符号位,都补0
  • 对于补码扩展,符号位是0补0,是1补1

3、常用ASCII码(记)

30H —— 0
41H —— A
61H —— a
24H ——$
20H —— 空格
0AH —— 换行
0DH —— 回车

第二章 8086处理器

本章目标:

  1. 常用寄存器的功能
  2. 理解物理地址、段地址、偏移地址、逻辑地址的关系

2.1 常用寄存器

1、通用寄存器:

  • AX —— 累加器,常作隐含操作数
  • BX —— 基地址寄存器,常作地址指针
  • CX —— 计数器,常存放计数值
  • DX —— 数据寄存器,常与累加器配合
  • SI —— 源变址寄存器,保存源操作数地址
  • DI —— 目的变址寄存器,保存目的操作数地址
  • SP —— 栈顶指针,只指向栈顶
  • BP —— 堆栈指针,可保存堆栈任意位置地址

2、段寄存器

  • CS 代码段寄存器 —— 用来存放要执行的代码指令,IP指向下一条要执行的指令的偏移地址(CS:IP)
  • DS 数据段寄存器 —— 用来存放数据段首地址
  • ES 附加段寄存器 —— 也是存数据
  • SS 堆栈寄存器 —— 用来存放程序运行中需要被临时保护的数据

3、专用寄存器

  • IP 指令指针寄存器 —— 保存下一条指令地址
  • FLAG 标志寄存器 —— 仅用到9位

3.1 常用标志位

CF 进位标志位,有进借位为1
OF 溢出标志位,有溢出为1
SF 符号标志位,运算结果为负则为1
ZF 零标志位,运算结果为0则为1

2.2 物理地址

  • 物理地址是每个存储单元的唯一的编号
  • 地址总线20位,则可寻址主存空间为2^20 = 1MB
  • 机器字长16位,则可直接寻址空间为2^16 = 64KB

1、存储器的分段管理

  • 段的起始:每个段首地址必须是16的倍数
  • 段的容量:每个逻辑段最大容量可以达到64KB
  • 各个逻辑段之间可以重叠
  • 1MB空间最多分为2^20/16=64K个段
  • 1MB空间最少分为2^20/64K = 16个段
  • 逻辑地址——段地址:有效地址(EA)

2、数据的存取方法

基本原则:低地址单元存放低字节数据,高的存放高的。注意读取的时候数据时什么类型

3、分段管理下的访问存储器

段寄存器 —— 对应的指针寄存器
CS —— IP
DS —— BX,SI,DI
ES —— DI
SS —— SP,BP

第三章 8086指令系统

本章目标:

  1. 7种寻址方式
  2. 常用指令——格式、功能、结果、对标志位的影响

3.1 寻址方式

  1. 立即数寻址方式:就是源操作数是一个数字。优点 不需要访存,速度快;缺点 不可以修改,通用性差。目的操作书不可以是立即数
  2. 寄存器寻址方式:mov ax,bx这种。可以用通用寄存器和段寄存器,但不能用专用寄存器(IP\FLAG)。操作数在CPU中,也不需要访存。
    高级语言中的x=y,用汇编写需要mov ax,y ,mov x,ax
  3. 直接寻址方式:操作数为存储单元,比如mov ax,[100H]这种。默认段地址是DS。
    假设X为定义的符号地址,那么mov ax,X就跟mov ax,[X]一样了
  4. 寄存器间接寻址:一个操作数只有一个间址寄存器,如mov ax,[BX]
  5. 寄存器相对寻址:mov ax,[bx+100H];mov ax,[bx][100H];mov ax,100H[ax]表示的是一样的
  6. 基址变址寻址方式:基址寄存器BX\BP,变址寄存器SI\DI
  7. 相对基址加变址:三个相加

3.2 常用指令

数据传送类指令,不影响标志位的状态

  • mov dst,src。其中dst不能为立即数,立即数也不能为段寄存器赋值;两个操作数不能同时为段寄存器,也不能同时为地址;CS不能为目的操作数,IP不能为操作数
    注:两种操作数类型不确定时,需要强制类型。如mov[bx],1就是错误的

  • add adc

  • inc dec 自增自减,对cf无影响

  • sub sbb

  • cmp指令用dst减src,但对两个操作数都没有影响

  • mul 乘数。如果乘数是8位,则默认被乘数是al,结果放在ax中;如果乘数是16位,则默认被乘数是ax,结果放在dx:ax中

  • imul

  • neg求补。注意是全位置取反加一,跟补码不一样,用来求相反数的

  • div 除数。如果除数是8位,则被除数为ax16位,ah存余数,al存商;如果除数是16位,则被除数是dx:ax,ax存商dx存余数

第四章 编程

本章目标:

  • 记住代码程序标准格式
  • 会用伪指令
  • 会四个常用dos功能调用

4.1 程序格式

Data Segment
…………
Data ends
Code Segment
Assume ds:Data,cs:Code
Start:mov ax,Datamov ds,ax……mov ax,4c00hint 21H
Code ends
end start

4.2 伪指令

伪指令并不会执行,只是提供汇编信息。

比如DW,DB,DD,SEGMENT,ASSUME等

  • 通配符:?。只分配存储空间,而不赋初值

  • 连续一段空间:DUP复制说明符。
    DATA1 DB 100 DUP(?)
    BUF DB 10,?,10 DUP (“$”)

  • 常量:用equ

  • 变量:A1 DB 10
    A2 DW NUM, 100H, -1(这样100h和-1各占一个字节)
    A3 DD 4*8 (32=20H放在内存中)

  • 字符串:用DB,存ASCII码

  • 等号=:只能定义数值,但可对一个符号名重复定义

  • org定位:ORG 100H,其后的数据从指定位置开始存放

4.3 DOS功能调用

使用方法:1、设置入口参数(AH)2、INT 21H调用相应模块 3、获得输出参数

  • 01号:单字符输入
    mov ah,01h
    int 21h
    输入后,al即为输入字符的ASCII码,注意有些输入多个值相加,要减掉30H
  • 02号:单字符输出
    mov ah,02h
    mov dl,db的字符
    int 21h
    即输出放在dl中的字符
  • 09号:字符串输出
    lea dx,db的字符串
    mov ah,09h
    int 21h
    注:字符串需要以$结束
  • 0A号:字符串输入
    lea dx,缓冲区buf
    mov ah,0ah
    int 21h
    注:由于回车也保存在缓冲区,所以如果定义10长度的话,只能输入9个字符。如果输入的字符串最后需要输出,可以初始化为$

例:输入字符串,并回车显示出来

DATA SEGMENTBUF DB 10, ? , 10 DUP("$")
DATA ENDS
CODE SEGMENTASSUME DS:DATA, CS:CODE
START:
MOV AX,DATA
MOV DS,AX
;输入
LEA DX,BUF
MOV AH,0AH
INT 21H
;换行
MOV DL,0DH
MOV AH,02H
INT 21H
;因为buf的第一个字节放的是10
LEA DX,[BUF+2]
MOV AH,09H
INT 21H
;结束
MOV AX,4C00H
INT 21H
CODE ENDS
END START

第五章 汇编语言程序设计

本章目标:

  • 顺序、分支、循环结构
  • 内存单元的指定访问
  • 求最大最小值
  • 求数量
  • 求长度
  • 求和显示

5.1 一些常见的逻辑运算

  • and al,0fh
    清空高四位,和减30h一样,把输入的字符转成数字
  • xor cx,cx
    清空cx

5.2 常见的程序代码

  • 输入数字到X中
x db ?mov ah,01h
int 21h
sub al,30h
mov x,al
  • 求x-y的绝对值
x db ?
y db ?
;若是有符号数
mov al,x
sbb al,y
jge exit
neg al
exit:

接口部分(8255和8253)

看我兄弟的博客吧:控制字
大概只考控制字

汇编语言期末复习总结相关推荐

  1. c51汇编语言如何定义全局变量_汇编语言期末复习笔记(七)

    第三章 汇编语言程序格式(上) 写在前面:这一部分开始复习汇编语言程序格式,包括参数的表达.变量的定义等.如有错误欢迎指正,感谢! 1.硬指令和伪指令 硬指令:使CPU产生动作,并在程序中执行时才处理 ...

  2. dx 汇编dec_汇编语言期末复习笔记(四)

    第二章 8086的指令系统(上) 写在前面:这一部分开始复习汇编语言程序的指令系统,主要是数据传送类指令和算术运算类指令.如有错误欢迎指正,感谢! 一.数据传送类指令 1.传送指令movmov reg ...

  3. SCAU 汇编语言 期末复习 (上)

    第一章 1.储存单位 存储容量:bit .Byte. Word 1 kilobytes=210bytes=1024bytes 1megabyte(MB)=220bytes 1gigabyte(GB)= ...

  4. 汇编语言程序设计钱晓捷第五版期末复习参考

    汇编语言程序设计钱晓捷第五版期末复习参考 第一章:汇编语言基础知识 1.1 8086的寄存器 处理器内部需要高速存储单元,用于暂时存放程序执行过程中的代码和数据,这些存储单元被称为寄存器(Regist ...

  5. 计算机组成原理考试知识点总结,最新2018计算机组成原理期末复习考试知识点复习考点归纳总结总结...

    电大计算机组成原理期末复习考试考点 归纳总结 科学研究和工程技术计算是计算机最早的领域. 信息处理是计算机应用的最广泛的领域. 计算机系统分为硬件和软件两大部分.硬件是实体部件,是看得见摸得着的.软件 ...

  6. 计算机英语复习,计算机英语期末复习

    计算机英语期末复习 Unit 1data processing system 数据处理系统 digital computer数字计算机Integrated Circuit 集成电路 Very Larg ...

  7. 计算机组成原理 北理,北京理工大学计算机组成原理期末复习.pdf

    计算机组成原理 期末复习 北京理工大学管理与经济学院 关磊 博士 提纲 内容回顾 练习题 2014年6月 北京理工大学管理与经济学院关磊博士 内容回顾 第1章引言 第2章数据表示 方法与数字逻辑 第3 ...

  8. JMU软件计组期末复习总结

    本篇博客是针对JMU软件专业的期末复习进行的知识点总结,知识点来回穿插,会比较凌乱,不适合预习使用. 因是参考老师给的提纲进行的总结,并没有覆盖这本书的所有知识点,有遗漏还请见谅. 本人能力有限,出现 ...

  9. 计算机导论期末考试知识点,计算机导论期末复习(知识点).doc

    计算机导论期末复习(知识点) 计算机导论期末复习(知识点) 单选题30%(每题1分,总30分) 判断题20%(每题1分,总20分) 问答题30%(7题左右,总30分) 综合回答题20%(2题,总20分 ...

  10. 计算机科学导论大一,(计算机科学导论期末复习资料.doc

    (计算机科学导论期末复习资料 1.关于教材 由于<计算机科学导论>课程涉及的内容广泛,任何一本教材均无法完全覆盖所有知识点.所以同学们在复习时应该以教学课件为主,指定教材仅供辅助参考使用. ...

最新文章

  1. LeetCode.3-最长无重复字符子串(Longest Substring Without Repeating Characters)
  2. 汇总|精选CVPR开源项目学习资源
  3. 图片的批量下载 和 爬虫爬取图片数据集
  4. html table相关标签和属性
  5. Alltesting众测平台访谈录第一弹!
  6. SVM: 支持向量机中的,那个C
  7. 最幸福的事就是吃饺子
  8. 漫谈数据挖掘从入门到进阶
  9. python import logging日志
  10. php 异步请求微信模板消息_php实现微信模板消息推送
  11. 加密算法-MD5算法
  12. OpenCV(二)OpenCV的介绍和发展
  13. 可控硅工作原理及参数详解
  14. MATLAB火灾自动报警与消防控制系统
  15. 【Gitlab】 remote: Ask a project Owner or Maintainer to create a default branch:
  16. LaTex 之 各类括号总结
  17. 如何用PR制作GIF图(Premiere)
  18. 电气阀门定位器调试方法
  19. 动力学矩阵法计算石墨烯声子谱
  20. 计算机收藏夹无法添加,Win7系统收藏夹不能用怎么办?

热门文章

  1. HTML5中thead标签,【HTML5】table标签中thead、tbody、tfoot的作用
  2. 单因素认证与多因素认证
  3. Android 测试(Unit Test Instrument Test)
  4. 小赛毛游C记——分支和循环语句(2)
  5. Python 流媒体播放器(基于VLC)
  6. 潮汕地区2-汕头观感
  7. Xposed框架安装步骤
  8. 用计算机按余弦,知道余弦的值怎么用计算器求度数
  9. 一个amp;quot;现象级amp;quot;大数据公司的蜕变
  10. html富强民主鼠标特效,给网站添加鼠标点击特效富强、民主、和谐 js效果 - 寒星皓月...