汇编学习笔记1

物理内存介绍:

物理内存大小是由地址总线决定的  例子:8086cpu是20根地址总线,2的20次方字节等于1MB,所以8086cpu内存大小为1MB

cpu数据的传输速度是有数据总线决定的 例子:8086是16根地址总线,所以一次最多处理16位数据


物理地址:存存储器的实际地址,cpu读取存储器是所使用的地址

逻辑地址:

是在程序中使用的地址,由段地址和偏移地址组成,表示形式“段地址:偏移地址”

段地址:是指在逻辑段在主存中的起始位置

段内偏移地址:是指在主存单元距离段首地址的偏移量,由于8086cpu是16位寄存器,一段空间地址最大不超过64KB=2^16B,段空间是以16字节对齐的,所以段的空间是16的倍数开辟内存的


段的概念:内存没有分段,段划分是由于8086cpu用"物理地址=段地址+偏移地址"的方式给出内存单元的物理地址,使我们可以用分段的方式管理内存

错误认识:内存被划分为一个一个段,每一个段都有一个段地址


cpu在访问物理内存是先分配地址,在根据地址访问内存

物理地址=段地址+偏移地址

段地址放在段寄存器中 (cs,ds)中,偏移地址放在(IP)寄存器中,通过段寄存器和偏移寄存器确定物理地址,访问内存

注意:任何时刻,cs:IP存放的都是指令也就是说cpu读取cs:ip中的内容都当作指令执行


8086寄存器介绍:

8086有4个可以分为8个8位的寄存器也可以作为4个16位数据寄存器:AX:AH,AL     BX:BH,BL     CX:CH,CL         DX:DH,DL 


debug实模式下简单命令:

e是改变内存的值

r是查看修改寄存器

t是单步调试运行

u是把机器码对应汇编指令(反汇编)

d是查看内存

a是编写汇编指令

g是执行汇编指令


学习的简单汇编指令:

mov ax,[0]  在debug中[]代表内存单元,填写地址偏移量,[]没有填写段地址默认是ds

mov 传送指令(不能把数据直接传送到段寄存器上例如:mov cs,0011,这个汇编代码无效)    

 jmp改变cs:ip指令  

sub 减法指令   

add加法指令


dd和dup指令笔记:

dd(double word):定义两个字型数据,占4个字节

dup:dup操作符 它和db,dw,dd等数据定义的配合使用,进行数据重复

例子:db 3 dup(0)   定义字节数据0,重复3次 占3个字节 相当于 db 0,0,0

   db 3 dup(0,1,2) 定义字节数据0,1,2 重复3次,占9个字节 相当于 db 0,1,2,0,1,2,0,1,2

   dw 3 dup(0)  定义字数据0 ,重复3次,占3个字(6个字节) 相当于 dw 0,0,0

使用格式:db(定义的数据类型)  重复次数   dup (重复的数据)





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值