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

news2024/11/26 3:42:02

文章目录

  • 前言
  • 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


编译
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.

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

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

相关文章

C++ 信息学奥赛 2048:【例5.18】串排序

#include<bits/stdc.h> using namespace std; int main() {string s[25];//string类数组 int n;cin >> n;for(int i 1; i < n; i)cin >> s[i];sort(s1, s1n);//默认升序 调用函数默认排序 for(int i 1; i < n; i)cout << s[i] << endl;…

Python实现Labelme的Json标注文件与YOLO格式的TXT标注文件相互转换

Python实现Labelme的Json标注文件与YOLO格式的TXT标注文件相互转换 前言前提条件相关介绍实验环境Labelme的Json标注文件与YOLO格式的TXT标注文件相互转换convert_labelme_json_to_txtjsons/000000000009.json代码实现输出结果labels/000000000009.txt convert_txt_to_labelme_…

Flink(一)【WordCount 快速入门】

前言 学完了 Hadoop、Spark&#xff0c;本想着先把 Kafka、Flume 这些工具先学完的&#xff0c;但想了想还是把核心的技术先学完最后再去把那些工具学学。 最近心有点累哈哈哈&#xff0c;偷偷立个 flag&#xff0c;反正也没人看&#xff0c;明年的今天来这里还愿哈&#xff0c…

C语言100~200中不能整除3的数

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> int main() {int n;for (n 100; n < 200; n){if (n%3 0){continue;}printf("%d\n",n);}}

RFC使用与WebService

RFC连接 CSDN RFC中引用类型组 http://t.csdnimg.cn/wQWAYhttp://t.csdnimg.cn/wQWAY 远程目标系统维护SM59 这里的类型指的是目标系统的系统类型(目标系统即rfc函数存在的系统). 类型2&#xff08;R/2连接&#xff09;&#xff0c;只需给出主机名&#xff0c;所有通信信息…

软件系统设计方法和工具介绍

软件系统设计方法和工具介绍 在构建系统时&#xff0c;尤其是一些大项目实施的过程中&#xff0c;可以接触和学习一些高阶层面分析问题和系统架构的方法论&#xff0c; 如麦肯锡的解决问题7步法&#xff1a;定义问题、分解问题、排定优先级、制定工作计划、分析问题、综合分析…

比SAM小60倍的分割一切模型:MobileSAM

1 MobileSAM SAM就是一类处理图像分割任务的通用模型。与以往只能处理某种特定类型图片的图像分割模型不同&#xff0c;SAM可以处理所有类型的图像。 在SAM出现前&#xff0c;基本上所有的图像分割模型都是专有模型。比如&#xff0c;在医学领域&#xff0c;有专门分割核磁图…

Python批量下载ERA5数据

1. ERA5数据简介 ERA5是第五代ECMWF大气再分析全球气候数据(ECMWF)&#xff0c;该数据集的第一部分现在可以公开使用(1979年到3个月内)。ERA5数据提供每小时的大气、陆地和海洋气候变量的估计值&#xff0c;地球数据精确到了30km网格&#xff0c;包括了137层的大气数据。 网址…

【教3妹学编程-算法题】最大单词长度乘积

3妹&#xff1a;哇&#xff0c;今天好冷啊&#xff0c; 不想上班。 2哥&#xff1a;今天气温比昨天低8度&#xff0c;3妹要空厚一点啊。 3妹 : 嗯&#xff0c; 赶紧把我的羽绒服找出来穿上&#xff01; 2哥&#xff1a;哈哈&#xff0c;那倒还不至于&#xff0c; 不过气温骤降&…

使用Anaconda安装TensorFlow环境以及没有搜到的报错的解决方法

1.在官网下载Anaconda 这一步几乎不会有人报错 下稳定的版本 或者最新的版本都可以 2.TensorFlow分两个版本 一个是用cpu跑 另一个是用gpu跑 显而易见 cpu的计算性能已经比不上现在主流的显卡了 所以有独显的电脑尽量安装gpu版本 CPU版本: 先给出cpu版本的安装方法: 打开A…

体坛巨星商业价值完美呈现,B体育等超巨品牌堪称经典案例

近几年&#xff0c;伴随着互联网的发展&#xff0c;我们惊喜的发现体坛巨星的商业代言越来越多&#xff0c;他们代言的广告已经融入到我们的生活之中&#xff0c;陪伴很多人度过了美妙的时刻。越来越多的品牌也意识到&#xff0c;比起娱乐明星&#xff0c;体坛巨星的全球属性对…

EMS员工管理系统 python

python基础练习&#xff0c;简单的增删改查&#xff0c;涉及python基础语法&#xff0c;逻辑、分支结构以及一些基础数据格式的操作&#xff0c;文件操作&#xff0c;思路理解等等 部分代码如下 print(""*20,"欢迎使用员工管理系统",""*20)# em…

浏览器自动播放音视频-前端实现方案

目录 前言 浏览器自动播放策略 策略详情&#xff1a; 实现方案 方案1&#xff1a; 互动后播放 方案2&#xff1a; 互动后出声 总结 前言 在开发中可能有遇到这样的需求&#xff0c;当用户打开页面后&#xff0c;需要自动播放视频或音频&#xff0c;按理说那就打开页面…

Vue2和Vue3生命周期映射关系及异同

生命周期映射关系表 beforeCreate -> 使用 setup() created -> 使用 use setup() beforeMount ->onBeforeMount mounted -> onMounted beforeUpdate -> onBeforeUpdate updated -> onUpdated beforeDestroy-> onBeforeUnmount destroyed ->onUnmounted…

800*A. Domino piling(规律数学)

Problem - 50A - Codeforces #include<bits/stdc.h> using namespace std; const int N1e55; int n,m,res; signed main(){scanf("%d%d",&n,&m);if(n>1){resn/2*m;n%2; }if(n1) resm/2;cout<<res;return 0; }

WPS表格无法粘贴信息,原因是复制区域与粘贴区域形状不同

WPS表格无法粘贴信息&#xff0c;原因是复制区域与粘贴区域形状不同 问题描述 我是选中了一整列&#xff0c;复制&#xff0c;但是无法粘贴到另一个EXCEL表格中 原因 首先我的数据量很大&#xff0c;有20万行&#xff0c;然后需要复制的EXCEL是.xls格式的&#xff0c;.xls格…

缓解缓存击穿的大杀器之---singleflight深入浅出

singleflight简单介绍 singlefight直译“单飞”&#xff0c;那顾名思义就是有一堆鸟&#xff0c;但是咱只让一只鸟单飞。。。&#x1f604; singleflight 提供了重复函数调用抑制机制&#xff0c;使用它可以避免同时进行相同的函数调用。第一个调用未完成时后续的重复调用会等…

20231106_抽象类abstract

抽象类abstract 关键字 abstract运用抽象类抽象方法:修饰抽象类中的某个方法,强制子类重写该方法 归纳 关键字 abstract 对于子类必须要实现特定方法,当时父类无法明确时,可定义为抽象类及抽象方法 不合理: 动物吃东西是基础,在这里写吃的方法过于简单,信息没有实际意义; 怎…

FSDiffReg:心脏图像的特征和分数扩散引导无监督形变图像配准

论文标题&#xff1a; FSDiffReg: Feature-wise and Score-wise Diffusion-guided Unsupervised Deformable Image Registration for Cardiac Images 翻译&#xff1a; FSDiffReg&#xff1a;心脏图像的特征和分数扩散引导无监督形变图像配准 摘要 无监督可变形图像配准是医学…