第五周日志-重新学汇编(2)

发布于:2025-03-29 ⋅ 阅读:(32) ⋅ 点赞:(0)

机器语言

汇编语言(直接在硬件上工作——硬件系统结构):

1.机器语言

每一种微处理器硬件设计和内部结构不同(决定了电信号不同,进而需要不同的机器指令)

#早期通过纸带机/卡片机输入计算机,进行运算

2.汇编语言

(编译器)差别在指令的表示方式不同,便于阅读记忆和书写

#核心:汇编指令(有对应机器码,CPU执行)

#伪指令(无,编译器执行[计算机并不执行])

#其他符号(无,编译器识别)

存储器(指令和数据的存放)和存储单元

数据和指令本质都一串串二进制,应用赋予他们不同的意义

微型存储器有128个存储单元(1Byte字节)

cpu对存储器的读写

where 器件/存储单元地址,act,details

【和芯片的3类信息交互:地址信息、控制信系、数据信息(逻辑上就有3类总线)】

总线(数据传送)

CPU外部总线和内部总线

地址总线,根/宽(最多寻2^N个内存单元);

数据总线,宽度和根数(决定:速度、字节数);

控制总线,宽度和根数(决定:控制能力、多少种控制)。“X信号输出/... ...输入

内存地址空间(地址总线可寻到的内存单元)

主板,核心器件、主要器件、拓展插槽

接口卡(直接控制外部设备,CPU不能)

各类存储器芯片(读写属性分RAM,ROM)

RAM>ROM

RAM(主板、拓展插槽),接口卡需要大量处理时可装

ROM上可存储硬件的BIOS(对硬件设备可进行基本输入输出)

内存地址空间(也连、控)

一种具有特殊访问方式的空间

CPU提供的栈机制

以字w为单位

#栈顶超界问题SS:SP,只知道当前要执行的指令在何处,而不知道要执行的有多少

注意安排栈的大小,防止入栈数据过多/栈空时继续出栈

offset伪指令,取得标号的偏移地址

jmp五条吉安转跳

段内短转移:short 标号[位移]

段间/远转移:far ptr 标号[指令(目的地址)]

reg[寄存器中的地址]

段内转移:word ptr 内存单元地址[内存中存放的w就是偏移地址]

特殊的标志寄存器(按位起作用vs整个寄存器一个含义)

7:符号标志符        6:ZF零标志符4:AF 2:奇偶标志符0:CF进位标志符(产生溢出)

CF用法,(adc、sbb带借位加、减法的设计思路)

(cmp设计思路:减法)

内中断:内部程序错误或软件指令

eg:1/0除零错误,访问未分配的内存地址触发段错误,

或使用 int 0x80 指令发起系统调用(Linux 传统方式),

外中断信息:外部硬件设备

用汇编讲中断,反而更简单!和你之前的理解可能不一样!来深入理解中断吧!_哔哩哔哩_bilibili