汇编学习笔记(一)
- 汇编语言的组成
1)汇编指令:机器码的助记符,有对应的机器码。
2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
3)其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。 - CPU的组成
1)运算器:信息处理。
2)寄存器:信息存储。
3)控制器:控制各种器件工作。
4)控制总线: - 寄存器
1)汇编程序员可以用指令读写
2)寄存器的数量、结构因CPU不同而不同
3)8086的14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、DS、ES、SS、PSW - 通用寄存器
1)用来存储一般性的数据
2)AX、BX、CX、DX
3)高8位,低8位 AX(AH,AL) - 地址加法器
1)两个16位地址:段地址、偏移地址
2)物理地址20位
2)物理地址=段地址*16+偏移地址
3)内存没有分段,CPU以段的方式进行内存管理,段地址寄存器:CS、DS、ES、SS。 - CS和IP
1)CS:代码段寄存器
2)IP:指令指针寄存器
3)8086机器中,任意时刻,CPU把CS:IP指向的内容当作指令执行
4) - DS和[Address]
1)DS:数据段寄存器
2)[Address]:表示内存单元,括号中的值表示偏移地址
3)不能直接将数据放入段寄存器,可以使用寄存器进行中转
1 mov bx,1000H
2 mov ds,bx
3 ;上面两句用bx中转,设置ds的段地址为1000H
4 mov al,[0]
5 ;将物理地址1000H*16+0的数据存入al寄存器 - DEBUG工具
1)R 查看改变CPU寄存器内容
2)D 查看改变内存内容
3)E 改写内存内容
4)U 内存中的机器指令翻译成汇编指令
5)T 执行机器指令
6)A 以汇编指令的格式在内存中写入机器指令 - 栈
1)栈是一种具有特殊访问方式的存储空间。最后进入的数据最先出去(LIFO)
2)入栈PUSH、出栈POP
push ax;将段寄存器ax中的数据送入栈中
pop ax;从栈顶取出数据存入ax寄存器
SS:栈顶的段地址;SP:栈顶的偏移地址
SS:PP指向栈顶地址