【笨鸟先飞 汇编挖坑】第一天

机器语言 汇编语言

计算机可以直接读得懂的语言,因其只用01两种信号难以编写学习,才产生了汇编语言,汇编语言由汇编指令和伪代码两部分组成,汇编指令是直接对应机器语言,而伪代码则需要编译器进行编译。

CPU与储存器

储存器

以二进制形式储存数据(包括代码)
存储器被分成若干个存储单位并从0编号每个存储单位一个字节(byte)
单位换算 : 8bit=1byte
1MB=210byte
1GB=210MB
1Tb=210GB

CPU

运算器进行信息处理;
寄存器进行信息存储;
控制器控制各种器件进行工作组成
CPU内三者由内部总线连接

寄存器

8086有十四个寄存器:
通用寄存器:AX,BX,CX,DX(数据)SP,BP,SI,DI(指针&变址)
段寄存器:CS,DS,SS,ES
指令指针:IP
标志寄存器:PSW

通用寄存器常作为两个8位使用,H表示高位 L表示低位
AX=AH+AL
BX=BH+BL
CX=BH+BL
DX=DH+DL

两者联系

CPU与存储器进行以下三类信息的交换:
1、存储单元的地址(地址信息);
2、器件的选择、读或写命令(控制信息);
3、读或写的数据(数据信息) 。
而交换的桥梁便是总线,
总线分为地址总线、数据总线、控制总线。

总线的宽度:总线由多根线组合而成,每根线可以独立地流过高平或者低频脉冲

  • 地址总线:总线宽度决定了CPU的寻址能力
    例如:宽度为16,可以形成216个组合,这些组合对应了存储器中存储单位的编号
  • 数据总线:总线宽度决定CPU一次可以进行数据传送的量
  • 控制总线:总线长度决定CPU对其他器件的控制能力

物理地址

8086CPU寄存器最大宽度为16,而其有20位地址总线,为了使达1M的寻址能力得到利用,8086CPU采用在内部用两个16位地址合成20位地址,即物理地址

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

一个物理地址可以对应多个段地址&偏移地址组合

  • 这里的段地址相当于一个起点,偏移地址则是一个偏移量
  • 段地址存放往往存放在段寄存器中:
    几个特殊寄存器组合:
    CS:IP指向当前要执行的指令,在debug中是T指令执行的代码
    执行完命令后IP会自加一定位数让CS:IP指向下一条命令
    SS:SP指向栈顶元素,同样push pop SP会自加

基础代码

  • 赋值:mov
  • 加法:add
  • CS:IP 数值修改:jmp
    CS:IP 无法用mov赋值
    格式:jmp xxxx:xxxx同时给 CS IP 赋值
    jmp 合法寄存器 给 IP 赋值
    jmp还是无条件跳转命令 )

debug命令

  • - R查看 改变寄存器的值 例如: -R AX
  • - D查看内存中的内容 -D xxxx:xxxx or -D xxxx:xxxx x
  • -E 改修内存内容 可批量改写 :-E xxxx:xxxx x 00 01 02 33 or 提问式改写
  • -U 翻译并显示内存中的汇编命令
  • -T 执行CS:IP下一个指令
  • -A 以汇编格式写入内存
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值