内存单元和地址
– 物理地址:通常使用十六进制表示
– 内存单元与内存容量有关
– 物理地址的最大值
1.CPU运算能力
2.地址总线宽度
16位的CPU对应的地址总线是16根,最大地址位0xFFFF。
32位————————————32————————0xFFFFFFFF。
-
物理地址 = 段地址16+偏移地址
例:再8086CPU是16位,但地址总线有20根,本来最大只能表示16位地址值,但CPU设计者为了能表示20位地址,使用段地址16+偏移地址表示20位地址。 -
如果表示一个20位物理地址0xFFFFA,有以下写法
0xFFFFA=0xFFFF16+0x000A //=0xFFFF0+0x000A
0xFFFFA=0xFFF016+0x00FA
0xFFFFA=0xFF0016+0x0FFA
0xFFFFA=0xF00016+0xFFFA
计算机的寻址能力不仅和CPU有关,还和地址总线有关。
栈和队列
栈和的队列都是数据存储结构,数据结构大致包括
- 线性表,还可细分为顺序表、链表、栈和队列
- 树结构,包括普通树、二叉树、线索树
- 图存储结构
- 队列结构:先进先出。
- 栈存储结构:先进后出。
– 用于存储临时数据,对数据进行暂时性保护,不被复写。
寄存器和栈的区别
- 寄存器是通用的容器,所有的函数都可以对寄存器都可以操作。(寄存器中的数据容易被干扰,用于短期使用)
汇编语言
工具下载
链接:https://pan.baidu.com/s/1dtZihaDdtc6OT1fnnWqb3g
提取码:bxit
汇编语言:指令集。
8086语法和指令集,16位。
x86汇编语法
1.注释
;我是注释(分号)
2.变量取值和赋值(传送指令)
-
;赋值
mov ax,2000H ;将十六进制2000赋值给十六位寄存器ax相当于ax = 2000H -
;取值
mov bx,ax ;将ax中的值取出赋值给bx。
– 存放的数据大小根据使用的寄存器而定,比如ax是16位寄存器 ,只能存放16位数据
– 十六进制数据不能以字母开头,前面需要加0,例如0FFFFH
– 无符号数据默认为10进制数据
3.函数声明
- 结构
结构名:
函数体
ret ;结尾标记|跳到调用函数的下一句
- 4.函数调用
x86架构中使用关键指令:call
示例:
call print
mov ah, 4ch
int 21h
print:
mov dx,offset str
mov ah,9ch
int 21h
ret