码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • x86汇编代码学习-计算机工作原理2


    文章目录

    • 前言
    • 1.mov
    • 2.内存分段
    • 3.调试
    • 5.注释
    • 6.标号
    • 7.add sub
    • 8.inc dec自增,自减
    • 9.adc sbb
    • 10 乘法栈
    • 11 栈寄存器push pop
    • 12 jz jnz
    • 13 section 16字节对齐
    • 14 CALL
    • 15 逻辑运算
    • 16 启动MBR以外的程序
    • 17
    • 4.

    前言

    视频教程

    x86汇编代码学习-计算机工作原理1


    在这里插入图片描述

    1.mov

    在这里插入图片描述

    因为ah是8bit,所以会传送一个字节的数据到ah寄存器中
    在这里插入图片描述
    ax 是 16bit,所以会传送两个字节的数据到它那里
    在这里插入图片描述

    综上,就是会自动判断寄存器的大小,来移动数据。
    mov ax,bx是可以的,但是mov cx,dh就不可以,必须保持左右两边宽度一样

    所以总共有9个mov操作
    mov word [0x01], 0xb80
    加了[]为内存单元,不加的时候是立即数
    在这里插入图片描述

    2.内存分段

    8086是16位的计算机,但是它的数据总线有20位,所以有1M的寻址
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如果每一段位16Byte,那么1M就有65536个16Byte
    如果每一段为64kb,那么就有16个64KB
    在这里插入图片描述
    下面可以看到一个物理地址,根据分段的不同,有多个逻辑地址,这也很好理解,因为分段不一样
    在这里插入图片描述
    根据实际运行来给段地址
    在这里插入图片描述
    在这里插入图片描述

    3.调试

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

    Bochs官网:http://bochs.sourceforge.net/
    Bochs下载:https://sourceforge.net/projects/bochs/files/bochs/2.6.11/
    Bochs命令:http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html

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

    然后点击disk Boot,出现下面
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    可以通过load来加载
    在这里插入图片描述

    运行,如果运行失败把里面的lock文件删除了重新来
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    e05b是bios程序的入口
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

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

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

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

    mov ax, 0x7c00
    mov ds, ax
    
    mov bx, 0x353637
    mov byte [0xf1], 'h'
    mov byte [0xf2], 0x3839
    jmp $
    
    times 510-($-$$) db 0
    db 0x55,0xaa
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    编译
    nasm -f bin .\mov2.asm -o .\mov2.bin

    5.注释

    在这里插入图片描述

    6.标号

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

    7.add sub

    结果保存在第一个
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    s 200
    表示循环200次

    8.inc dec自增,自减

    32位加法

    9.adc sbb

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

    10 乘法栈

    64位寄存器,但是关注后16bit
    在这里插入图片描述
    在这里插入图片描述

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

    11 栈寄存器push pop

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

    12 jz jnz

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

    13 section 16字节对齐

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

    14 CALL

    在这里插入图片描述

    15 逻辑运算

    在这里插入图片描述

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

    在这里插入图片描述

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

    16 启动MBR以外的程序

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

    17

    4.

  • 相关阅读:
    系统架构师笔记——嵌入式系统
    怎么换证件照底色?分享两款好用的免费制作证件照的软件
    (1)paddle---在anaconda中安装paddle环境
    虫情测报灯如何实现自动化测报?
    基于avaSwing开发普通计算器程序 课程设计 大作业源码
    关于requires_grad和优化器optim中parameters的记录
    SpringBoot SpringBoot 开发实用篇 3 测试 3.1 加载测试专用属性
    uni-admin 利用云数据表自动生成页面
    【COMP329 LEC1 Agents and Autonomous Systems】
    Three.js——基础材质、深度材质、法向材质、面材质、朗伯材质、Phong材质、着色器材质、直线和虚线、联合材质
  • 原文地址:https://blog.csdn.net/weixin_43360707/article/details/134252676
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号