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

news2024/11/26 13:24:15

文章目录

  • 前言
  • 1.CPU架构
  • 2.8086寄存器
  • 3. 指令流水线
  • 4.内存模型
  • 5.总线
  • 6.硬盘
  • 7 计算机启动过程BIOS
  • 8.BootLoader
  • 9.地址映射
  • 10.为什么boot loader要放在0x7c00这个位置?
  • 11 显卡是如何显示的
  • 12.汇编指令
    • 1.环境搭建
  • 12 程序
  • 13 x86 汇编指令介绍

前言

x86汇编

详解x86汇编

1.CPU架构

在这里插入图片描述

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

2.8086寄存器

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

32位进行了简单的继承
在这里插入图片描述

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

3. 指令流水线

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

4.内存模型

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

5.总线

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

6.硬盘

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

7 计算机启动过程BIOS

第一条指令在哪里呢
主板刷BIOS

在这里插入图片描述

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

8.BootLoader

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

9.地址映射

8086是16位

1MB
在这里插入图片描述
地址分配
在这里插入图片描述

10.为什么boot loader要放在0x7c00这个位置?

在这里插入图片描述

这主要是历史遗留问题,5150支持32KB寻址
在这里插入图片描述
在这里插入图片描述
然后从rom里面读取指令开始执行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到后加载到内存里面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以放在内存最后面,用完就释放。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11 显卡是如何显示的

在这里插入图片描述
在这里插入图片描述
要让显示器显示文字,就要把内容写到现存里面去,现存很大,但是系统分配的却很少地址空间
在这里插入图片描述
通过映射,来写显卡内存
在这里插入图片描述

显卡也有自己的汇编指令,这些指令就可以完成切换映射地址空间的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
除了显示本身外,还有下面一个属性字节,所以需要两个字节,所以最后的代码是两个字节

在这里插入图片描述

12.汇编指令

1.环境搭建

86汇编
8086汇编语言精讲

NASM编译器之下载安装使用

Nasm下载

VS Code:https://code.visualstudio.com/
Nasm:https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/
VBox:https://www.virtualbox.org/

关软件已全部上传云盘,链接: https://pan.baidu.com/s/1YN7mB5uPuIzcacS-Q-YCmg 提取码: 5ua2

安装后可以在vscode的terminal中能识别nasm,如果识别不了,设置nasm的环境PATH,重启vscode后就可以了

在这里插入图片描述

代码如下

mov ax,0b800h
mov ds,ax

mov byte [0x00], '2'
mov byte [0x02], '0'
mov byte [0x04], '2'
mov byte [0x06], '4'
mov byte [0x08], 'h'
mov byte [0x10], 'e'
mov byte [0x12], 'l'
mov byte [0x14], 'l'
mov byte [0x16], 'o'
mov byte [0x18], '0'
mov byte [0x1a], '2'
mov byte [0x00], '4'

jmp $

times 510-($-$$) db 0
db 0x55,0xaa

如下图编译
在这里插入图片描述
打开ORacle VM VirtualBox
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一步步发现没有vhd的选项,结果最后发现了
在这里插入图片描述
在这里插入图片描述
再次返回发现成功了,当然还要设置第一和第二选项,一定要选择提前分配
在这里插入图片描述

接着打开vhd writer,下面是因为磁盘没有选择提前分配,重新创建磁盘,选择提前分配后
在这里插入图片描述
选择提前分配后,终于可以了
在这里插入图片描述
打开虚拟机,注意一定要 虚拟化开启
在这里插入图片描述
如何开启虚拟化,重启电脑,按F2,将Disabled 改为Enabled
在这里插入图片描述

在这里插入图片描述

12 程序

8086是16位处理器,但是数据总线却有20位
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

mv ds,ax
指定数据段基准地址
在这里插入图片描述

800H是因为这段地址是显卡的显存地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面单中写法是一样的
在这里插入图片描述

;开辟200字节内存空间
times 200 db 0

;开辟200字节内存空间
db 200 dup (0)


MBR 512字节
$ 代表程序的起始位置, 代表程序的起始位置, 代表程序的起始位置,代表jmp所在的位置

− - $=从开头到jmp的位置一共有多少个字节
下面这段代码是为了在最末尾添加0x55aa
在这里插入图片描述
在这里插入图片描述

13 x86 汇编指令介绍

在这里插入图片描述
红色的表示不能传递
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1177694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟机联网 | 虚拟机连接Xshell

目录 一,打开网络虚拟编辑器二,打开网络设置三,最终设置四,测试有没有连上网五,测试连接工具Xshell 一,打开网络虚拟编辑器 1. 点击"编辑",打开"虚拟网络编译器" 2. 选择更…

SHEIN要求卖家完成德国EPR合规,逾期将强制下架——站斧浏览器

EPR是卖家在欧盟自由销售的通行证之一,如果没有,是不允许在欧盟国家销售产品的。 近期根据SHEIN官方邮件通知,卖家需要在收到邮件后5天内完成申报,逾期申报产品将会在德国站点下架。 因此,建议卖家尽快通过合规的服务…

第八章《搞懂算法:逻辑回归是怎么回事》笔记

8.1 如何理解逻辑回归 逻辑回归根据给定的自变量数据集来估计事件的发生概率,由于结果是一个概率,因此因变量的范围在 0 和 1 之间。 逻辑回归的与线性回归一样,也是以线性函数为基础的;而与线性回归不同的是,逻辑回…

智能安全配电装置在银行配电系统中的应用

【摘要】银行是国家重点安全保护部分,关系到社会资金的稳定,也是消防重点单位,消防安全保障工作是银行工作的重要方面。智能安全配电装置应用在银行配电系统中,可以提升银行智能化管控水平和有效防范电气火灾的发生。 【关键词】…

【QT】QT自定义C++类

在使用Qt的ui设计时,Qt为我们提供了标准的类,但是在很多复杂工程中,标准的类并不能满足所有的需求,这时就需要我们自定义C类。 下面以自定义的QPushButton作一个很简单的例子。 先新建默认Qt Widgets Application项目 一、自定义…

从传统货架到智能货架电子标签PTL仓储亮灯系统的革新

在现代物流仓储行业中,仓库的管理和物料的寻找一直是一个难题。仓库内物料数量种类繁多,寻找物料耗时长、困难大,盘点更是耗费人力多、成本高、速度慢。此外,货物存储位置不清晰,经常性找不到物料。多发、少发、错料现…

首个流体力学大模型背后,是昇腾的大模型“造林”逻辑

作者 | 曾响铃 文 | 响铃说 一个飞机模型在试验风洞里,空气从它的机翼与机身流过,形成一层又一层稳定的气流,当风速加快,空气的流线开始波浪式摆动,最终随着速度增大而相互混合、形成不再能分辨的湍流,看…

大模型的实践应用5-百川大模型(Baichuan-13B)的模型搭建与模型代码详细介绍,以及快速使用方法

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用5-百川大模型(Baichuan-13B)的模型搭建与模型代码详细介绍,以及快速使用方法。 Baichuan-13B 是由百川智能继 Baichuan-7B 之后开发的包含 130 亿参数的开源可商用的大规模语言模型,在权威的中文和英文 benchmark 上均…

【寒武纪(3)】媒体处理系统的系统控制、视频输入和后处理子系统

系统控制 文章目录 系统控制1、配置视频缓存池Video Pool2、配置硬件IP为在线工作(不通过DDR数据交互)/ 离线工作(写入DDR)模式3、硬IP可以使用 非Video Block (VB)内存4、配置是否启动内存传递的压缩 视频…

Elasticsearch:搜索架构

Elasticsearch 全文检索的复杂性 为了理解为什么全文搜索是一个很难解决的问题,让我们想一个例子。 假设你正在托管一个博客发布网站,其中包含数亿甚至数十亿的博客文章,每个博客文章包含数百个单词,类似于 CSDN。 执行全文搜索…

c++-红黑树

文章目录 前言一、红黑树1、红黑树的概念2、红黑树的性质3、红黑树节点的定义4、红黑树结点插入4.1 情况1:cur为红,p为红,g为黑,存在且为红4.2 情况2:cur为红,p为红,g为黑,u不存在/u…

Unity之NetCode多人网络游戏联机对战教程(6)--NetworkTransform组件

文章目录 前言NetworkTransform是什么玩家移动脚本NetworkTransform字段讲解Synchronizing ("Syncing")ThresholdsLocal spaceInterpolationSlerp PositionUse Quaternion SynchronizationUse Quaternion CompressionUse Half Float PrecisionAuthority modesServer …

银河E8,吉利版Model 3:5米大车身、45寸大屏、首批8295座舱芯

作者 | Amy 编辑 | 德新 吉利银河E8在曝光后多次引爆热搜,李书福更是赞誉有加,称其为「买了就直接享受」。这款备受瞩目的车型于 10月30日晚首次亮相。 虽然新车外观在今年上海车展上早已曝光,但这次的发布会却带来了不少惊喜。新车架构以及…

pytorch安装1

用豆瓣源安装pytorch1.5.1(速度很快)-CSDN博客 详情请参考这位神仙的博客 我真的哭死,原来torch都安装好了,好不容易全部加载好了,但是,gpu配不上去,后来发现还是版本的问题版本不匹配具体版本…

Element对象_属性

Element对象对应网页的HTML元素。每一个HTML元素,在DOM树上都会转化成一个Element节点对象(以下简称元素节点) 1、Element.id Element.id属性返回指定元素的id属性,该属性可读写 2、Element.className className属性用来读写当前…

k8s 1.28安装

容器运行时,containerd 按照官方的指导,需要安装runc和cni插件,提示的安装方式,有三种: 二进制安装包源码apt-get 或 dnf安装 我们这里选用第三种,找到docker官方提供的安装方式 ubuntu-containerd # A…

rhcsa-文件内容显示

浏览普通文件内容 浏览文件的命令 命令常用选项说明cat -n 对输出内容中的所有行标注行号 -b 对输出内容中的非空行标注行号 查看文件的内容head-num 指定需要显示文件num行的内容默认查看文前十行的内容tail -num 指定需要显示文件num行的内容 -f 使tail不停的去读取显示文…

PHP保存时自动删除末尾的空格,phpstorm自动删除空白字符串

最近有个活儿,修改一个财务软件。 修改后给客户验收的过程中,客户反应有一个txt表格导出功能不能用了。之前是好的。 这次是新增,老的这个功能碰都没碰过,怎么能有问题呢?我心里OS 下班后我立马用系统导出TXT&#…

搜维尔科技:Movella Xsens和scalefit携手推进高精度人体工程学分析

Movella xsens是一家领先的传感器、软件和分析全栈提供商,致力于实现运动数字化和比例调整一家著名的人体工程学分析解决方案提供商,已联手重塑工作场所人体工程学。这项战略合作结合了先进技术和专业知识,以推进人体工程学评估并促进更健康、…

JavaScript_Element对象_获取元素位置

1、Element.clientHeight,Element.clientWidth(常用) Element.clientHeight属性返回一个整数值,表示元素节点的CSS高度(单位像素),只对块级元素生效,对于行内元素返回0。如果块级元…