数据处理的两个基本问题

文章目录

  • 数据处理的两个基本问题
    • bx、si、di、bp
    • 机器指令处理的数据所在位置
    • 汇编语言中数据位置的表达
    • 寻址方式
    • 指令要处理的数据有多长?
    • div 指令
    • 伪指令 dd
    • dup

数据处理的两个基本问题

我们知道,计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中:

  • 处理的数据在什么地方?
  • 要处理的数据有多长?

bx、si、di、bp

bx寄存器(Base Register):通常用作基址寄存器,用于存储数据的基地址,常用于访问数据段中的数据。

si寄存器(Source Index Register):通常用作源索引寄存器,用于存储源数据的索引,常用于数据传输操作。

di寄存器(Destination Index Register):通常用作目的索引寄存器,用于存储目的数据的索引,也常用于数据传输操作。

bp寄存器(Base Pointer Register):通常用作基址指针寄存器,用于存储栈帧的基地址,常用于访问栈中的数据。

在8086CPU 中,只有这4个寄存器(bx、bp、si、di)可以用在“[…]” 中来进行内存单元的寻址。

在“[…]” 中,这4个寄存器(bx、bp、si、di)可以单个出现,或只能以四种组合出现:bx和si、bx和di、bp和si、bp和di

机器指令处理的数据所在位置

指令在执行前,所要处理的数据可以在三个地方: CPU内部、内存、端口

请添加图片描述

汇编语言中数据位置的表达

汇编语言中用三个概念来表达数据的位置:

  • 立即数(idata)
  • 寄存器
  • 段地址(SA)和偏移地址(EA)

1)立即数(idata):对于直接包含在机器指令中的数据(执行前在cPu 的指令缓冲器中),在汇编语言中称为:立即数(idata ) ,在汇编指令中直接给出。例如:mov ax,1

2)寄存器:指令要处理的数据在寄存器中,在汇编指令中给出相应的寄存器名。例如:mov ax,bx

3)段地址(SA)和偏移地址(EA) :指令要处理的数据在内存中,在汇编指令中可用[X]的格式给出EA,SA在某个段寄存器中。存放段地址的寄存器可以是默认的,也可以显性的给出。

寻址方式

当数据存放在内存中的时候,我们可以用多种方式来给定这个内存单元的偏移地址,这种定位内存单元的方法一般被称为寻址方式。

请添加图片描述

指令要处理的数据有多长?

当数据存放在内存中的时候,我们可以用多种方式来给定这个内存单元的偏移地址,这种定位内存单元的方法一般被称为寻址方式。

用word ptr指明了指令访问的内存单元是一个字单元:

mov word ptr ds:[0],1

inc word ptr [bx]

inc word ptr ds:[0]

add word ptr [bx],2

用byte ptr指明了指令访问的内存单元是一个字节单元:

mov byte ptr ds:[0],1

inc byte ptr [bx]

inc byte ptr ds:[0]

add byte ptr [bx],2

在没有寄存器参与的内存单元访问指令中,用word ptr或byte ptr显性地指明所要访问的内存单元的长度是很必要的,否则,CPU无法得知所要访问的单元是字单元,还是字节单元。

有些指令默认了访问的是字单元还是字节单元,比如:push [1000H]就不用指明访问的是字单元还是字节单元,因为push指令只进行字操作。

div 指令

div是除法指令(division),使用div作除法的时候:

  • 除数:8位或16位,在寄存器或内存单元中
  • 被除数:(默认)放在AX 或 DX和AX中

除数为8位时,被除数为16位(AX),除数为16位时被除数为32位(DX+AX)。

div指令格式:

  • div reg
  • div 内存单元

编程1:利用除法指令计算100001/100。

实现:

mov dx,1
mov ax,86A1H  ;(dx)*10000H+(ax)=100001
mov bx,100
div bx

被除数 100001 大于 65535,不能用ax寄存器存放,所以我们要用dx和ax两个寄存器联合存放100001,也就是说要进行16位的除法。

编程2:利用除法指令计算1001/100。

实现:

mov ax,1001
mov bl,100
div bl

被除数1001可用 ax寄存器存放,除数100可用 8位寄存器存放,也就是说,要进行8位的除法。

伪指令 dd

我们用db和dw定义字节型数据和字型数据。dd是用来定义dword (double word双字)型数据的。

示例:

data segment
    db 1
    dw 1
    dd 1
data ends

在data段中定义了三个数据:

第一个数据为01H,在data:0处,占1个字节;

第二个数据为0001H,在data:1处,占1个字;

第三个数据为00000001H,在data:3处,占2个字节;

dup

dup是一个操作符,在汇编语言中同db、dw、dd 等一样,也是由编译器识别处理的符号。

它是和db、dw、dd 等数据定义伪指令配合使用的,用来进行数据的重复。

dup示例:

db 3 dup (0) :定义了3个字节,它们的值都是0,相当于 db 0,0,0

db 3 dup (0,1,2) :定义了9个字节,它们是0、1、2、0、1、2、0、1、2,相当于 db 0,1,2,0,1,2,0,1,2

可见,dup的使用格式如下:

  • db 重复的次数 dup (重复的字节型数据)
  • dw 重复的次数 dup (重复的字型数据)
  • dd 重复的次数 dup (重复的双字数据)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Tampermonkey 实现自动答题和视频播放

目录 一、环境准备 二、下载Tampermonkey 三、安装脚本 四、启用脚本 一、环境准备 微软自带的 edge 浏览器(电脑端) 二、下载Tampermonkey 安装地址:Tampermonkey 篡改猴(油猴脚本) 下载完成会在浏览器拓展中自动生成一个插件,此时点击管理拓展&…

linux 内核模块入门

内核模块可以动态地被安装到内核,从而扩展内核的功能,使用内核模块时不需要重新编译内核。内核模块常用的场景是驱动,随着芯片种类的增加,硬件种类的增加,这些芯片或者硬件(比如网卡) 的驱动可以以模块的方式进行开发&…

ONT60 旋转链表 思路分享

题干链接:ONT60 旋转链表 ​ 这道题是反转链表题的pro升级版,但比反转链表略微复杂一些。如果有做过旋转数组那道题(链接在这里:https://blog.csdn.net/wyd_333/article/details/126712919,但当时刷这道题的时候我用的…

Linux|centos7-postgresql数据库|yum安装数据库和配置repmgr高可用集群以及repmgr的日常管理工作

一、 前言 postgresql 的yum部署其实还是有点东西的,本文就做一个小小的记录,高可用方面repmgr插件还是非常不错的,但如何部署以及部署后如何使用也是一个难点,因此,也在本文里做一个记录 环境介绍: 第…

【Redis教程0x0A】详解Redis哨兵机制

1. 引言 Redis的哨兵机制是基于主从架构的。 在 Redis 的主从架构中,由于主从模式是读写分离的,如果主节点(master)挂了,那么将没有主节点来服务客户端的写操作请求,也没有主节点给从节点(slav…

java: 错误: 无效的源发行版:17

目录 一、java: 错误: 无效的源发行版:17 报错 原因 解决方法 二、pring-boot-starter-parent下面的版本报红 原因 解决方案 一、java: 错误: 无效的源发行版:17 报错 创建了一个sprintboot项目,运行CommunityApplication时&#xf…

小白从0学习ctf(web安全)

文章目录 前言一、baby lfi(bugku-CTF)1、简介2、解题思路1、解题前置知识点2、漏洞利用 二、baby lfi 2(bugku-CTF)1.解题思路1、漏洞利用 三、lfi(bugku CTF)1、解题思路1、漏洞利用 总结 前言 此文章是…

动态规划刷题(算法竞赛、蓝桥杯)--合唱队形(线性DP)

1、题目链接&#xff1a;[NOIP2004 提高组] 合唱队形 - 洛谷 #include <bits/stdc.h> using namespace std; int n,ans; int a[105],f[105][2];//f[i][2]中2表示正反两个方向int main(){cin>>n;for(int i1;i<n;i){cin>>a[i];}//正方向求最长上升子序列 a[…

HWOD:字符的排序

一、知识点 char的最大值是127&#xff0c;最小值是-128 自己填充的char型数组&#xff0c;以字符串打印&#xff0c;打印之前要手动在末尾加上 \0 二、题目 1、描述 Lily上课时使用字母数字图片教小朋友们学习英语单词&#xff0c;每次都需要把这些图片按照大小&#x…

财务管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …

Spring Boot单元测试全指南:使用Mockito和AssertJ

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

算法学习15:数论(高斯消元,组合数,卡特兰数)

算法学习15&#xff1a;数论&#xff08;高斯消元&#xff0c;组合数&#xff0c;卡特兰数&#xff09; 文章目录 算法学习15&#xff1a;数论&#xff08;高斯消元&#xff0c;组合数&#xff0c;卡特兰数&#xff09;前言一、高斯消元1.输入一个包含n个方程&#xff0c;n个未…

用vscode仿制小米官网

html内容: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><link rel&quo…

Intellij IDEA 类注释模板设置

1、配置全局USER 在此配置全局USER&#xff0c;用于填充自动生成的注释中的作者author属性。 注释模板中的user参数是默认是获取系统的用户&#xff08;当然注释作者也可以直接写固定值&#xff09;&#xff0c;如果不想和系统用户用同一个信息&#xff0c;可以在IDEA中进行配…

查生意平台联动SFE上海连锁加盟展,呈现口碑招商盛宴

随着中国广告市场规模突破1251亿美元大关&#xff0c;连锁经营企业在其中的营销投放愈发凸显其重要性。查生意&#xff08;www.chasyi.com&#xff09;&#xff0c;作为国内领先的一站式连锁经营口碑评分查询服务平台&#xff0c;携手SFE上海连锁加盟展览会成功举办了一场严选品…

分布式架构商城系统的设计与实现|SpringCloud+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …

C++格式化输入和输出

格式化输入与输出 除了条件状态外&#xff0c;每个iostream对象还维护一个格式状态来控制IO如何格式化的细节。 格式状态控制格式化的某些方面&#xff0c;如整型值是几进制、浮点值的精度、一个输出元素的宽度等。 标准库定义了一组操纵符来修改流的格式状态。 一个操纵符…

Vue3+.NET6前后端分离式管理后台实战(十)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战&#xff08;十&#xff09;已经在订阅号发布有兴趣的可以关注一下&#xff01; 感兴趣请关注订阅号谢谢&#xff01; 代码已经上传gitee

树莓派串口读取陀螺仪ky9250(mpu9250)数据

9轴姿态角度传感器&#xff0c;其中ky9250陀螺仪由于自带卡尔曼动态滤波算法方便用户使用。ky9250陀螺仪基本可以在各个平台上进行数据的读取&#xff08;如stm32\arduino\C#\Matlab\树莓\Unity3d\python\ROS\英飞凌\Nvidia jetson linux 等&#xff09; 1、树莓派和ky9250的接…

储能系统--BMS系统中的高压BUCK电路

一、Buck关键器件介绍 1、芯片选型 控制方式分类 优势缺点同步 1&#xff1a;效率高 2&#xff1a;MOS压降低 1&#xff1a;成本高 2&#xff1a;下官驱动复杂 异步 1&#xff1a;成本便宜 2&#xff1a;适合较高的输出电压 1&#xff1a;效率低 按照隔离方式分类 隔离电源…