• 【汇编语言王爽】笔记1-p1-p17


    汇编
    在这里插入图片描述
    指令和数据的表示
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    总线
    地址总线 - 寻址能力
    数据总线 - 数据传送能力
    控制总线 - 多少种控制 - 控制能力
    在这里插入图片描述

    cpu对存储器的读写

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ram 有 主板上的ram 扩展槽上的ram
    内存条 显卡上的ram
    |主板上的ram | 扩展槽上的ram |
    |- 内存条 -|- 显卡上的ram-|

    统一编写地址

    在这里插入图片描述
    在这里插入图片描述

    8086pc为例

    在这里插入图片描述
    在这里插入图片描述
    ms dos
    dos虚拟机

    推荐 dos模拟器
    在这里插入图片描述

    访问寄存器和内存

    在这里插入图片描述
    寄存器

    在这里插入图片描述
    在这里插入图片描述
    最大FFFF
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ax- ah al

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    字长 -
    字 word -16位

    mov add

    在这里插入图片描述
    汇编不区分大小写
    在这里插入图片描述
    溢出问题

    mov ah 0

    在这里插入图片描述
    八位加八位 进位的话直接丢掉 不会进到前面

    物理地址

    在这里插入图片描述
    都是十六位寄存器 那么他的内部存储 暂存 传输能力也就是16位 - 64KB

    在这里插入图片描述
    在这里插入图片描述

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

    在这里插入图片描述

    在这里插入图片描述

    段地址–内存没有分段 端的划分是cpu做的!!-他自己用的时候怎么分都行

    在这里插入图片描述

    在这里插入图片描述

    CS DS SS ES

    中文名. 代码段寄存器. 外文名. Code Segment.
    在CPU执行指令时,通过代码段寄存器(CS,Code Segment)和指令指针寄存器(
    IP,Instruction Pointer)来确定要执行的下一条指令的内存地址。
    在CPU中类似的寄存器有:
    DS:是 Data Segment 的缩写,翻译为“数据段寄存器”;
    SS:是 Stack Segment 的缩写,翻译为“堆栈段寄存器”;
    ES:是 Extra Segment 的缩写,翻译为“附加段寄存器”。
    在这里插入图片描述

    debug 调试程序 看cpu各种寄存器

    在这里插入图片描述
    在这里插入图片描述

    Debug 神仙

    在这里插入图片描述
    在这里插入图片描述
    rax ffff改ax

    d
    在这里插入图片描述

    一行16B 一次列出128B

    在这里插入图片描述
    d 2000:0 2f 从0到2f
    在这里插入图片描述

    e改变内存neirong

    在这里插入图片描述
    在这里插入图片描述
    e改变内存

    u 将内存中的机器指令翻译为汇编指令 u 地址

    在这里插入图片描述

    在这里插入图片描述

    手写汇编@@@!!!

    在这里插入图片描述

    A 一汇编格式在内存中写入机器指令 -常用

    在这里插入图片描述

    t执行cs:ip ;;;q退出debug

    代码的执行

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    跳转指令jmp-用户不可能debug来做 必须要有这个指令

    在这里插入图片描述

    jmp 3:0b16同时修改cs ip 也可只修改ip

    在这里插入图片描述
    在这里插入图片描述

    内存中的字 64位=64位一个字–寄存器大小

    在这里插入图片描述
    在这里插入图片描述

    注意:4e 20在内存中的存放–低字节在低地址 高字节在高地址 存放为20 4e—读的时候先读高地址单元 在读低地址单元

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    这样看起来读起来更顺 反过来画内存就可以从上往下读了

    在这里插入图片描述

    错误做法
    在这里插入图片描述

    字单元–对于16位机器-两个连续地址的内存单元组成

    在这里插入图片描述

    ds和【address】配合实现字的传送,从内存中读数据

    在这里插入图片描述
    默认 段地址是ds-----------电路设计
    在这里插入图片描述
    在这里插入图片描述

    注意 这是电路设计 不能用上一种方式

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    上面是CS与代码段的问题

    下面开始DS与数据段的问题

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    重磅!涵盖全微服务操作的Spring Cloud 文档竟出自Alibaba
    (LeetCode C++)旋转图像
    STC32G 单片机EEPROM 操作实例
    贺天下功夫酱酒闪耀亮相2023佛山秋色系列活动
    Vue ElementUi 校验邮箱手机号--大全
    LeetCode(力扣)763. 划分字母区间Python
    关于这半年,我在干些什么,有一些想和你分享的话题
    科教文汇杂志科教文汇杂志社科教文汇编辑部2022年第15期目录
    python类方法和静态方法区别详细讲解
    如何才能让UI自动化收益更大?
  • 原文地址:https://blog.csdn.net/weixin_43796670/article/details/126441122