2024宁波大学汇编与接口技术复习纲要与知识点版本2

题型分布

单选20*1
简答8*5
编程2*10
接口2*10

8251/8254不考

重点内容

P70 指令

CMP dst,src
根据dst-src置标志位
判大小 无符号 CF=1 < CF=0 >=
有符号 SF ^ OF =1 < =0 >=

SUB
ADD

MUL reg/mem---x
即AL/AX * x结果放在AH、AL 16位则DX、AX

DIV ---x
AX/DX 或AX 除以x
字或字节 商和余数放在AL和AH
双字或字 放在AX和DX

TEST本质是与,只置标志,不存结果
SAL算数
SAR 添加的数字和符号有关

SHL逻辑
SHR
最高位符号变了,就算溢出

ROL不带进位循环
ROR不带进位循环
RCL带进位循环
RCR带进位循环

P98 4.1.1 语句的类型很重要

硬指令语句:能产生目标代码,CPU可以执行,能完成特定功能的语句,主要由CPU指令组成
伪指令代码:不产生目标代码的语句,仅仅再汇编过程当中告诉程序如何进行汇编。所以伪指令语句时汇编程序在汇编时使用的。
宏指令语句:指令序列,汇编时范式由宏指令语句的地方都将用相应的目标代码替代

P51 习题2和5

2.8086CPU分为哪两个部分,各部分由哪些构成
8086CPU内部有两个部件:执行部件EU和总线接口部件BIU
EU用以执行指令,指令从BIU的指令队列缓冲器中取得,结果或数据由EU向BIU发出请求,BIU向存储器等设备进行存取。
EU主要功能部件:算术逻辑运算器ALU,状态标志寄存器FLAGS、通用寄存器组、暂存寄存器、EU控制单元

ALU:(1) 进行算术逻辑运算 (2) 对于指令寻址方式计算实际地址
FLAGS:长16位,存在反应ALU运算结果的特征状态以及控制标志
暂存寄存器:协助ALU完成运算以及运算结果的暂存
通用寄存器组:一共8个16位寄存器,AX---DX为数据寄存器,可以存16位与8位数据。SP为堆栈指针,给出栈顶偏移量;BP为基址指针,存放位于堆栈段的一个数据区基址偏移量;SI和DI为变址寄存器,SI存放源操作数偏移量,DI存放目标操作数偏移量。
EU控制单元:对于指令进行译码生成控制信号

总线接口部件:

  1. 指令队列缓冲器
  2. 16位指令指针寄存器IP
  3. 地址产生器和段寄存器
  4. 总线控制逻辑:需要实现分时复用

5.8086CPU有哪些标志位,作用即含义
CF 进位标志位 最高位进位或借位
PF 奇偶判断标志位 低8位1的个数为偶则1
ZF 零标志位 值是否为0
AF 辅助进位标志位 低4位进位或借位
SF 符号标志位 最高位01
OF 溢出标志位 有符号数是否溢出
提示:状态标志位只受到算术运算和逻辑运算影响
INC、DEC不影响CF

控制标志位
DF 方向标志位 1则地址不断-1
IF 中断允许标志 1则允许接受可屏蔽终端
TF 跟踪表示

P210 存储器的分类,掌握按存取方式分类

RAM 随机存取存储器 SRAM cahce 电源供电 DRAM 电容 不断刷新 主存储
只读存储器:ROM PROM EPROM
FLASH闪速存储区

主要指标:速度、存储容量、存储带宽、存储器可靠性

计算机内一般有四级存储器:寄存器、高速缓冲存储器、主存、外存

刷新方式:集中式、分散式、异步式

P292 中断向量表 会求以及会使用

8253,8254,8255,8259

P295 8259A要记住前面几个部分以及功能,以及相应里面的工作流程

P286 接口题如何考察初始化 课本3,4,5这种题目 P287的16题

P242 6.2 CPU外设和I/O输入输出方式 了解每一个方式和干什么

(1)程序控制方式:1.无条件传送 2.条件传送(查询方式) 需要状态端口
(2)中断控制方式:CPU需要进行相应的断点和线程信息保护,占用部分CPU时间,同时增加了硬件开销
(3)DMA方式 :高速度大批量数据传输

P329 DA的计算以及概念

LSB 最小分辨量
FSR最大电压输出值

最小分辨率 1/(2 ^ n -1) DAC对输入模拟量的分辨能力 1/(2 ^ n111)
转换精度 DAC转换器的精确程度 +-1/2 LSB

P22 最大最小工作模式下的区别和特点

最小工作模式下,系统中只有一篇8086CPU,所有的控制信息由CPU产生
最大工作模式下,系统中除了8086CPU用作主处理器外,还有其他协助处理器,用于中大规模系统
两者实际使用时8086时,还需要配备8084A时钟发生器、8282地址锁存器、8286时钟驱动器

P141 第二点基本I/O的调用,要具体掌握

DOS
1号调用 键盘输入 输入一共字符送入AL寄存器并回显
2号调用输出单字符 DL
9号调用输出字符串 输出DS:DX以$为结尾的字符串
7号调用 等待键盘输入,送入AL
5号调用 把DL寄存器中保存的数据输出到打印机上
0A调用 输入DS:DX 第一个时可容纳个数,第二个是实际容纳个数,第三个是实际字符

BIOS
0号读取键值
标准ASCII 则AL=x
1号 判断有无键按下
ZF=1,无
ZF=0,有
AX 键值
设置完ZF之后退出

P151 无条件转移指令 如例4.19 这些指令的含义

near PTR 是段内 word ptr也是段内
far PTR是段间 Dword ptr是段间

P152 条件转移指令记录前两个部分的全部和第三个部分的前四个

assets/新版期末复习/file-20250122235826650.png

P207 程序题偏向于实验课前五个实验题,和课本54题,存放这样一个成绩有分支的

P205 204 28,29题判断是否相等

DATAS SEGMENT
    MSG_PROMPT DB 'Enter 3 numbers:', 0DH, 0AH, '$'
    MSG_EQUAL_0 DB 'No numbers are equal$', 0
    MSG_EQUAL_2 DB 'Two numbers are equal$', 0
    MSG_EQUAL_3 DB 'All three numbers are equal$', 0
    NUMBERS DB 3 DUP(?) ; 存储用户输入的三个数字
DATAS ENDS

STACKS SEGMENT
    STA DB 128 DUP(?) ; 定义栈空间
    TOP EQU LENGTH STA ; 栈顶偏移量
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES, DS:DATAS, SS:STACKS
START:
    ; 初始化数据段寄存器
    MOV AX, DATAS
    MOV DS, AX

    ; 初始化堆栈段寄存器
    MOV AX, STACKS
    MOV SS, AX
    MOV SP, TOP

    ; 显示提示消息
    LEA DX, MSG_PROMPT
    MOV AH, 09H
    INT 21H

    ; 输入三个数字
    MOV CX, 3 ; 需要输入 3 次
INPUT_LOOP:
    MOV AH, 01H ; 键盘输入
    INT 21H
    MOV NUMBERS[3-CX], AL ; 保存到 NUMBERS 数组中
    LOOP INPUT_LOOP

    ; 获取三个数字
    MOV AL, NUMBERS[0] ; 数字 1
    MOV BL, NUMBERS[1] ; 数字 2
    MOV CL, NUMBERS[2] ; 数字 3

    ; 比较三个数字
    MOV SI, 0 ; 计数器 SI 初始化为 0

    CMP AL, BL
    JE INC_SI ; 如果 AL == BL,计数器加 1

    CMP AL, CL
    JE INC_SI ; 如果 AL == CL,计数器加 1

    CMP BL, CL
    JE INC_SI ; 如果 BL == CL,计数器加 1

    ; 判断相等数量
    CMP SI, 0
    JE MSG_0 ; 如果 SI == 0,跳转到 MSG_0

    CMP SI, 1
    JE MSG_2 ; 如果 SI == 1(两次相等),跳转到 MSG_2

    JMP MSG_3 ; 如果 SI == 3(全部相等),跳转到 MSG_3

INC_SI:
    INC SI ; 计数器加 1
    RET ; 返回比较逻辑

MSG_0:
    LEA DX, MSG_EQUAL_0
    JMP PRINT_MSG

MSG_2:
    LEA DX, MSG_EQUAL_2
    JMP PRINT_MSG

MSG_3:
    LEA DX, MSG_EQUAL_3

PRINT_MSG:
    MOV AH, 09H ; 显示消息
    INT 21H

    ; 程序结束
    MOV AH, 4CH
    INT 21H
CODES ENDS
    END START

P47 按字节存储,按二进制 最后一句话 逻辑地址与物理地址

按字节存储,每一个字节用唯一的地址码标识

分段编制的好处:
(1)指令只涉及16位,缩短了指令长度,提高执行效率
(2)多数情况下只需要在一个较小的段内运行
(3)多数指令的设计不涉及段寄存器的值,只涉及偏移量,为程序的浮动装配创造条件
(4)便于操作系统统一管理

物理地址:20位 段首地址和偏移量
偏移量和段首地址都是是逻辑地址。
一个存储单元有唯一的实际地址,但是可能有多个逻辑地址
![Pasted image 20250105174208.png]]

P17 通用寄存器的相关 考虑8位和16位,以及相加相减的影响 +1

溢出:最高位和次高位只有一个进位

P237 接口的功能中的接口的概念,接口是放在哪里的

硬件接口是把外围设备同微型处理器连接起来的电路
为什么要用接口?
(1)速度不匹配
(2)时序不匹配
(3)信息格式不匹配
(4)信息类型不匹配

CPU与外设之间传送的信息类型:
(1)数据信息
(2)状态信息
(3)控制信息

接口的功能:
(1)数据缓冲
(2)联络功能
(3)寻址功能
(4)预处理功能
(5)中断管理/DMA控制功能

I/O端口编址方式:
(1)存储器映像编制(一起)
(2)独立编址(分开)

IN 累加器 端口
将字节/字传送到AL/AX
OUT 端口 累加器
将AL/AX中的数据传送到指定端口

学习通上面的作业题,学会如何做,其中内存分布图和循环左移那个答案有些许问题

P113 文件生成过程

assets/新版期末复习/file-20250122235846128.png

P58 寻址的相应格式 立即寻址、寄存寻址、寄存器寻址,牢固掌握,知道如何存,如何算

立即寻址 MOV AX 5000H
只能用于源操作数,且源操作数和目的操作数字长相同
寄存器寻址 目的操作数和源操作数均为寄存器时,必须长度相同
两个操作数不能同时为段寄存器 DS,CS,ES,SS
目的操作数不能是代码段寄存器
MOV [SI],AL ;目的操作
源、目的操作数不能同时带方括号
存储器寻址 当操作数是字或字节的立即数,需要BTYE PTR/WORD PTR用以区分

P20 NMI 等相应的引脚记录,以及功能,什么情况下置1,什么情况下置为0 +1

P66 堆栈的描述 +2 -2 压栈和出栈的相关操作,理解栈顶和栈底

PUSH指令时先将SP-2,然后压栈。POP是先出栈,然后进行SP+2
栈底在高地址,堆栈是从高地址向低地址延伸的,所以栈底就是最初的栈顶
PUSH CS合法,POP CS 违法
PUSH和POP指令都不影响标志
用PUSH指令和POP指令时只能按字访问堆栈,不能按字节访问堆栈

ARM相关

ARM使用RISC 精简指令集,简化架构,使得处理器小体积、高效能。
X86使用CISC 复杂指令集,增加处理器本身复杂度换取个高性能。
assets/新版期末复习/file-20250122235905143.png
assets/新版期末复习/file-20250122235918808.png

大纲要求要有课外知识的扩展,有部分分数出在鲲鹏处理器当中。仅作为科普,不会很多。
了解鲲鹏处理器和其他常规处理器的区别,取下一条命令时的不同
指令集的不同,单核到多核的演变
ARM31个寄存器 寄存器是32位,而8086是16位
ARM汇编语言语法格式
考试一般给一个小代码,然后问相关理解
这个是在PPT108页
得读懂每一个每一行
还有这个:
assets/新版期末复习/file-20250123000107571.png

assets/新版期末复习/file-20250123000123844.png

posted @   菜dog的日常生活  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示