当前位置: 首页 > news >正文

汇编语言学习-二

好吧,已经隔了两天,下完班看了两天,在电脑上装了虚拟机版的MS_DOS,主要是怕折腾坏我的电脑系统;

这个第二天应该是称为第二章更为合适,目前第二章已经看完,基本的命令也是敲了敲;

下面就进行一些汇总叭

嵌入式软件学习笔记 - 第二章:汇编语言基础

1. 概述

本章主要介绍了8086CPU的寄存器架构和基本的汇编指令。以下内容基于学习心得和网络资料汇总。

2. 主要组件

  • 运算器:负责数据处理。
  • 控制器:控制各个硬件部件的工作。
  • 寄存器:用于信息存储。

3. 寄存器

8086CPU使用14个寄存器,分为以下几类:

通用寄存器:

  • AX(累加器):主要用于算术运算和逻辑运算。
  • BX(基址寄存器):用于存储内存地址。
  • CX(计数器):在循环和串操作中用作计数器。
  • **DX(数据寄存器)**用于数据传输。

这些寄存器长度为16位,可分成高八位和低八位:

  • AH & AL:AX的高八位和低八位。

字在寄存器中的存储:

一个字等于2个Byte(16个bit)。

专用寄存器:

  • SI(源变址寄存器)DI(目的变址寄存器):主要用于串操作。
  • SP(堆栈指针):指向堆栈顶部。
  • BP(基址指针):用于访问堆栈中的数据。

程序状态字寄存器(PSW):

包含程序执行的状态信息,如是否产生进位等。

段寄存器:

  • CS(代码段寄存器)
  • SS(段寄存器)
  • DS(数据段寄存器)
  • ES(附加段寄存器)

CSIP(指令指针寄存器) 一起决定下一条指令的物理地址:
物理地址 = 段地址16 + 偏移地址
物理地址 = CS
16 + IP

4. 基本指令

- **ADD AX, BX**:AX = AX + BX
- **MOV BX, 123H**:BX = 123H
- **JMP 段地址:偏移地址**
- **SUB AX, BX**:AX = AX - BX,结果存储在AX中

以上是课本中的知识点;讲的有一些不全面,我们理论上是想清晰的知道这些寄存器都是什么作用;

1)4个16位段地址寄存器
8086对存储器采用分段管理,4个段寄存器分别用于存放4个当前段的起始地址,又称为段基址寄存器。

CS(Code Segment) ——代码段寄存器
DS(Data Segment) ——数据段寄存器
SS(Stack Segment)—— 堆栈段寄存器
ES(Extra Segment)——扩展段寄存器

2)16位指令指针寄存器IP
IP始终指向当前代码段CS所要取出的下一条指令的地址。
每取出一个字节指令后,IP自动加1。
可以用转移指令、调用指令及中断和复位等改变IP值。

3)4个16位数据寄存器
AX、BX、CX、DX,可以分为8个8位寄存器使用:
AH、AL、BH、BL、CH、CL、DH、DL
数据寄存器用于存放操作数及中间结果
举个例子:
BX任意时刻的内容都=高八位BH,低八位BL(对于其他同理)

4)4个16位地址指针寄存器
地址指针寄存器用于存放操作数的地址,编程时通过修改寄存器的内容达到修改地址的目的
SP(Stack Pointer)——堆栈指针寄存器 指示堆栈段中的栈顶位置,专门用于数据进栈和出栈的位置指示,只能与SS配对使用
BP(Base Pointer)——基址指针寄存器 指示堆栈段中一个数据区的基址位置,通常与SS配对使用
SI(Sourse Index)——源变址寄存器
DI(Destination Index)——目的变址寄存器

与DS联用,用来确定数据段中某一存储单元的偏移地址。在串处理指令中SI和DI作为隐含的源变址和目的变址寄存器,此时SI和DS联用,DI和ES联用,分别达到在数据段和附加段中寻址的目的


										  **代表安装DOS的过程**

大家需要的话,我就发一篇汇编环境搭建的文章。之前装在了笔记本上,现在台式机空荡荡,刚好可以复习一遍。

查看CPU和内存

Debug是DOS,Windows都提供的实模式程序的调试工具。使用它可以查看CPU各种寄存器的内容,内存的情况和在机器码级别跟踪程序的运行

常用Debug功能:

R命令  查看改变寄存器中的内容
D      查看内存中的内容
E      改写内存中的内容
U      将内存中的机器指令翻译成汇编指令
T      执行一条机器指令
A      以汇编的形式在内存中写入一条机器指令

需要自己练习哦!

5. 总结

本章内容为汇编语言学习的基础,对深入理解处理器工作原理和汇编程序编写至关重要。后续将深入学习更多指令和程序设计方法。指令有些繁琐,但是仔细理解下来,敲上几遍感觉也是OK的!原来只是寄存器跳来跳去呀!

附上之前贴在墙上方便看的,“扭曲的笔记”
请添加图片描述

相关文章:

汇编语言学习-二

好吧,已经隔了两天,下完班看了两天,在电脑上装了虚拟机版的MS_DOS,主要是怕折腾坏我的电脑系统; 这个第二天应该是称为第二章更为合适,目前第二章已经看完,基本的命令也是敲了敲; 下面就进行一…...

【嘟嘟早教卡】 小程序源码分享带后台管理

【嘟嘟早教卡】是专门为 3-6 岁婴幼儿童学习普通话、英语研发的早教启蒙认知识字的小程序 小程序由 Taro 及 Tailwind CSS 构建而成,后台管理使用 Laravel 及 Tailwind CSS 想法源于小时候玩的认知卡片,基本大部分家庭都买过认知卡片,我按照…...

JavaEE-经典多线程样例

文章目录 单例模式设计模式初步引入为何存在单例模式饿汉式单例模式饿汉式缺陷以及是否线程安全懒汉式单例模式基础懒汉式缺陷以及是否线程安全懒汉式单例模式的改进完整代码(变量volatile) 阻塞队列生产者消费者模型生产者消费者模型的案例以及优点请求与响应案例解耦合削峰填…...

从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型

从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型 前言一、盒子模型的组成margin(外边距):border(边框):padding(内边距):conten…...

数据分析(一): 掌握STDF 掌握金钥匙-码农切入半导体的捷径

中国的半导体行业必然崛起!看清这个大势,就会有很多机会。 今天,我们一起来了解一下半导体行业的一朵金花:STDF。 实际上这只是一种文件格式,但是当你熟练掌握解析这种文件的时候,你就已经打开在这个基础…...

HCIA-openGauss_1_4基本功能介绍

openGauss支持标准SQL SQL是用于访问和处理数据库的标准计算机语言,SQL标准的定义分成核心特性以及可选特性,绝大部分的数据库都没有100%支撑SQL标准。openGuass支持SQL2003标准语法,支持主备部署的高性能可用关系型数据库。openGauss数据库…...

医学临床机器学习中算法公平性与偏差控制简析

摘要 随着医疗领域中数据的不断积累和计算能力的提升,临床机器学习技术发展迅速,但算法不公平性和偏差问题凸显。本文深入探讨了临床机器学习算法公平性的重要性、概念与定义、在临床应用中的影响、偏差来源、降低偏差方法及提升公平性策略。通过对不同…...

Leetcode打卡:棋盘上有效移动组合的数目

执行结果:通过 题目:2056 棋盘上有效移动组合的数目 有一个 8 x 8 的棋盘,它包含 n 个棋子(棋子包括车,后和象三种)。给你一个长度为 n 的字符串数组 pieces ,其中 pieces[i] 表示第 i 个棋子的…...

生产看板到底在看什么?

说起生产看板,可能很多人脑海里冒出来的画面是:车间里一块挂在墙上的大板子,上面贴满了各式各样的卡片、表格,甚至还有几个闪闪发光的指示灯。但是,无论是精益生产方式代表——丰田,还是当下以“智能制造”…...

12,攻防世界simple_php

simple_php 题目来源:Cyberpeace-n3k0 题目描述: 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 进入靶场 这段PHP代码是一个简单的web应用示例,让我们逐步分析这段代码: show_source(__FILE__);:这行代码会显示当前文件的…...

解决Jupyter Notebook无法转化为Pdf的问题(基于Typora非常实用)

笔者在完成各项作业和做笔记时,经常用到jupyter notebook;其因为可以同时运行python并提供格式化的数字公式的输入方式,得到了广大用户的喜爱。 当我们想要将.ipynb文件导出为pdf时,有两种常用方法。 1.Ctrlp 2.通过File ->…...

齐护机器人ModbusRTU RS485转TTL通信模块与ESP32 Arduino通信可Mixly的图形化编程Scratch图形化编程

齐护机器人ModbusRTU RS485-TTL通信模块 一、概念理解 Modbus协议是一种由Modicon公司(现为施耐德电气Schneider Electric)于1979年发表的网络通信协议,旨在实现可编辑逻辑控制器(PLC)之间的通信。 1.1 什么是Mod…...

python学习笔记15 python中的类

上一篇我们介绍了python中的库 ,学习了一些常见的内置库。详细内容可点击–>python学习笔记14 python中的库,常见的内置库(random、hashlib、json、时间、os) 这一篇我们来看一下python中的类 创建一个类 class 类的名称():de…...

PMP–一、二、三模、冲刺–分类–10.沟通管理

文章目录 技巧十、沟通管理 一模10.沟通管理--1.规划沟通管理--文化意识--军事背景和非军事背景人员有文化差异5、 [单选] 项目团队由前军事和非军事小组成员组成。没有军事背景的团队成员认为前军事团队成员在他们的项目方法中过于结构化和僵化。前军事成员认为其他团队成员更…...

android-studio开发第一个项目,并在设备上调试

恭喜你成功安装并配置好了 Android Studio!下面是开发你的第一个 Android 项目并在设备上调试的详细步骤: 1. 启动 Android Studio 首先,启动 Android Studio。你可以通过以下几种方式启动: 使用桌面快捷方式(如果已…...

springboot/ssm线上教育培训办公系统Java代码web项目在线课程作业源码

springboot/ssm线上教育培训办公系统Java代码web项目在线课程作业源码 基于springboot(可改ssm)htmlvue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&…...

Spring 依赖 详解

Spring 依赖详解 在 Spring 框架中,依赖 是指一个对象(Bean)需要另一个对象(Bean)来完成其功能的情况。Spring 通过 依赖注入(Dependency Injection, DI) 和 控制反转(Inversion of…...

千益畅行,旅游卡有些什么优势?

千益畅行共享旅游卡是一种创新的旅游服务模式,旨在通过整合各类旅游资源,为用户提供一站式的旅游解决方案。这张旅游卡支持2至6人同行,涵盖了接机、酒店、用餐、大巴、导游、景区门票等服务,用户只需自行承担往返交通费用即可享受…...

Ubuntu24 cgroupv2导致rancher(k3s)启动失败的处理

方案一: 修改系统镜像为ubuntu18 方案二: 修改当前系统的cgroup版本,由v2改成v1 修改步骤: 1、查看当前cgroup版本 stat -fc %T /sys/fs/cgroup cgroup v2,输出结果为cgroup2fs cgroup v1,输出为tm…...

学习CSS第二天

学习文章目录 一.内部样式 一.内部样式 写在 html 页面内部&#xff0c;将所有的 CSS 代码提取出来&#xff0c;单独放在 <style> 标签中 语法&#xff1a; <style> h1 { color: red; font-size: 40px; } </style>注意点&#xff1a; <style> 标签理…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...