汇编笔记[01]

背景

 汇编语言是计算机绕不开的一个语言,非常重要,开始学习。

总线

地址总线

  • CPU是通过地址总线来指定存储单元的
  • 地址总线宽度,决定了可寻址的存储单元大小
  • N根地址总线(宽度为N),对应寻址控件2的n次方。

数据总线

  • CPU于内存或其它器件之间的数据传送是通过数据总线来进行的。
  • 数据总线的宽度决定了CPU和外界的数据传送速度。
  • 例:向内存中写入数据89D8H时的数据传送。

控制总线

  • CPU通过控制总线对外部器件进行控制。
  • 控制总线是一些不同控制线的集合。
  • 控制总线宽度决定了CPU对外部器件的控制能力。

CPU对存储器的读写

什么是内存地址空间

 CPU地址总线宽度为N,寻址空间为 2 N 2^N 2NB
 8086 CPU的地址总线宽度为20,那么可以寻址1MB个内存单元,其内存地址空间为1MB。

RAM:随机存储器,能读能写,但是掉电数据丢失
 例如:主板上的TAM
 扩展槽上的RAM(例显卡)

ROM:只读存储器,能读不能写,
 系统BIOS
 接口卡上的BIOS
在这里插入图片描述

选择8086学习的理由

  • 简单
  • 达成目标:
     理解计算机底层工作原理
     作为继续扩展的基础 -> 80x86汇编、Linux汇编、ARM汇编

学习工具-DOS模拟器

http://www.dosbox.com

挂载

mount c d:\learn\masm
c:

CPU的组成

  • 运算器进行信息处理
  • 寄存器进行信息存储
  • 控制器协调各种器件进行工作
  • 内部总线实现CPU内各个器件之前的联系。

汇编指令学习

汇编指令控制CPU弯沉的操作用高级语言的语法描述
mov ax,18将18送入AXAX = 18
mov ah,78将78送入AHAH = 78
add ax,8将寄存器AX中的数值加上8AX = AX + 8
mov ax,bx将寄存器BX中的数据送入寄存器AXAX = BX
add ax,bx将AX,BX中的内容相加,结果存在AX中AX = AX + BX

注:汇编指令不区分大小写

8086CPU访问地址为123C8H的内存单元

方法:物理地址 = 段地址 * 16 + 便宜地址
本质含义:相当于段地址左右4位(2进制)/左移一位(16进制)
要解决的问题
用两个16位的地址(段地址、偏移地址),相加得到一个20位的物理地址。

用分段的方式管理内存

内存本身并没有分段,段的划分来自于CPU!!!
段地址很重要!-- 用专门的寄存器存放段地址。
4个段寄存器:
CS-代码段寄存器
DS-数据段寄存器
SS-栈段寄存器
ES-附加段寄存器

Debug能做什么

  • 用R命令查看、改变CPU寄存器的内容

  • 用D命令查看内存中指定地址的内容
    在这里插入图片描述

  • 用E命令改变内存中的内容

  • 用U命令将内存中的机器指令翻译成汇编指令(查看代码)
    在这里插入图片描述

  • 用A命令以汇编指令的格式在内存中写入机器指令

  • 用T命令执行机器指令

用U命令将内存中的机器指令翻译成汇编指令

  • 有汇编指令
    mov ax,0123H
    mov bx,0003H
    mov ax,bx
    add ax,bx

  • 对应的机器码为
    B8 23 01
    BB 03 00
    89 D8
    01 D8

  • e地址 数据-写入

  • d地址-查看

  • u地址-查看代码
    在这里插入图片描述
    在这里插入图片描述

  • t-执行CS:IP处的指令
    mov ax,0123H
    mov bx,0003H
    mov ax,bx
    add ax,bx

    在这里插入图片描述

    • q 退出Debug

两个关键的寄存器

  • CS:代码段寄存器
  • IP:指令指针寄存器
  • CS:IP:CPU将内存中CS:IP指向的内容当做指令执行。

8086PC工作过程的简要描述:

1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
2)IP = IP + 所读指令的长度,从而指向下一条指令;
3)执行指令。转到步骤(1),重复这个过程
在这里插入图片描述

跳转指令

修改CS、IP的指令

  • 事实:执行何处的指令,取决于CS:IP(指向的物理地址处)
  • 应用:可以通过改变CS、IP中的内容,来控制CPU要执行的目标指令
  • 问题:如何改变CS、IP的值
  • 方法1:debug 中的R命令可以改变寄存器的值–rcs,ip
    Debug是调试手段,并非程序方式!
  • 方法2:用指令修改
    不可以
  • 方法3:转移指令jmp

转移指令jmp

  • 同时修改CS、IP的内容
    jmp 段地址:偏移地址
    jmp 2AE3:3
    jmp 3:0B16
    功能:用指令中给出的段地址修改CS。偏移地址修改IP
  • 仅修改IP的内容
    jmp 某一合法寄存器
    jmp ax (类似于 mov IP,ax)
    jmp bx
    功能:用寄存器中的值修改IP。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值