【汇编语言】直接定址表

【汇编语言】直接定址表


文章目录

  • 【汇编语言】直接定址表
  • 前言
  • 一、移位指令
    • 移位指令过程
    • 逻辑移位指令shl 和 shr
  • 二、操作显存数据
    • 显示的原理
    • 显示缓冲区的结构
    • 显示信息的一种“直接”方式
  • 三、描述内存单元的标号
    • 关于标号
    • 去了冒号的数据标号
    • 数据标号同时描述内存地址和单元长度
    • 更常见的方式:数据段中的数据标号
  • 四、数据的直接定址表
    • 直接定址表:用查表的方法解决问题
    • 最简解决方案
    • 直接定址表
    • 应用示例:为加快运算速度而采用查表方法
  • 五、代码的直接定址表
    • 使用代码的直接定址表解决问题
    • 各种功能的实现
    • 直接定址表的优势
  • 总结


前言

在本篇文章中我们将讲到,移位指令,操作显存数据,操作内存单元的称号,数据的直接定址表,代码的直接定址表。


一、移位指令

移位指令过程

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

逻辑移位指令shl 和 shr

SHL OPR, CNT,将OPR逻辑左移CNT位
1)将寄存器或内存单元中的数据向左移位
2)将最后移出的一位写入CF中
3)最低位用0补充
shl指令操作示例
在这里插入图片描述
在这里插入图片描述

注意:移位一位的时候可以用立即数1,大于一位必须用cl来储存所需移位

惯常用法:将X逻辑左移一位,相当于执行X=X*2;右移一位,相当于执行X=X/2
在这里插入图片描述


二、操作显存数据

显示的原理

【汇编语言】初始汇编-中的内存地址空间
我们在之前的文章中有谈到
在这里插入图片描述
屏慕上的内容=显存中的数据
在这里插入图片描述

显示缓冲区的结构

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

显示信息的一种“直接”方式

显示信息的一种“直接”方式:直接在显示缓冲区输入要显示的数据
例:编程序,在屏幕的中间,白底蓝字,显示‘Welcome to masm!’
在这里插入图片描述

在这里插入图片描述


三、描述内存单元的标号

关于标号

代码段中的标号可以用来标记指令、段的起始地址。
代码段中的数据也可以用标号
在这里插入图片描述
在这里插入图片描述
我们在想:offset .cs:…能简单点吗?我们引入去了冒号的数据标号。

去了冒号的数据标号

在这里插入图片描述
在这里插入图片描述
我们在code 段中使用的标号a、b后面没有“:” ,它们同时描述内存地址和单元长度的标号。
标号a
地址code:0
以后的内存单元都是字节
标号b
地址code:8
以后的内存单元都是字

数据标号同时描述内存地址和单元长度

在这里插入图片描述

更常见的方式:数据段中的数据标号

对比:地址标号只能在代码段中使用
数据段中的数据标号
在这里插入图片描述
在这里插入图片描述
扩展用法:将标号当作数据来定义
在这里插入图片描述


四、数据的直接定址表

直接定址表:用查表的方法解决问题

问题:以十六进制的形式在屏幕中间显示给定的byte 型数据。
分析:先将一个byte的高4位和低4 位分开,显示对应的数码字符
在这里插入图片描述
方案一:
在这里插入图片描述
这种方法显然不好。
方案二:
在这里插入图片描述
能不能一次解决这种问题不用分成两种呢?
方案三:
在这里插入图片描述
这种方法相对来说最简单。

最简解决方案

最简方案:建立一张表,表中依次存储字符’0’~ ‘F’,通过数值0~15直接查找到对应的字符。

这里是引用
在这里插入图片描述
在这里插入图片描述

直接定址表

问题求解思路:
利用表,在两个数据集合之间建立一种映射关系,用查表的方法根据给出的数据得到其在另一集合中的对应数据。
优点:
算法清晰和简洁
加快运算速度,以空间换时间
使程序易于扩充
例如:
三角函数表我们需要的值可以通过映射方法找到
在这里插入图片描述

应用示例:为加快运算速度而采用查表方法

问题:
编写程序,计算sin(x),x∈{0°,30°,60°,90°,120°,150°,180°},并在屏幕中间显示计算结果。
方法一:
在这里插入图片描述
这种方法显然不好。
方法二:
在这里插入图片描述

解决方案:在这里插入图片描述


五、代码的直接定址表

使用代码的直接定址表解决问题

直接定址表法:
用查表的方式,通过依据数据,直接计算出所要找的元素的位置
直接定址表分类:
1)数据的直接定址表
2)代码的直接定址表

要解决的问题
实现一个子程序setscreen ,为显示输出提供如下功能
1)清屏。
2)设置前景色。
3)设置背景色。
4)向上滚动一行
在这里插入图片描述

各种功能的实现

这里是引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

直接定址表的优势

在这里插入图片描述
要在 setscreen 中再加入新功能,只需要在地址表中加入它的入口地址就可以了。结构清晰,便于扩充。

不用 直接定址表
在这里插入图片描述
要在 setscreen 中再加入新功能,则需要修改程序的逻辑,加入新的比较、转移指令,比较麻烦。


总结

到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!

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

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

相关文章

前端JS必用工具【js-tool-big-box】,防抖和节流的方法调用学习

这一小节,我们针对前端工具包(npm)js-tool-big-box的使用做一些讲解,主要是防抖和节流方面的。 目录 前言 1 安装和引入 2 防抖的调用学习 3 节流的调用学习 4 使用方法总结 前言 在前端项目中,经常涉及到防抖…

CNAS软件测评报告收费标准

随着信息技术的快速发展,软件测评在保障软件质量、提升用户体验等方面扮演着越来越重要的角色。CNAS(中国合格评定国家认可委员会)作为国内权威的认可机构,其软件测评报告收费标准受到了广泛关注。本文旨在解析CNAS软件测评报告的…

[华为OD]幼儿园两个班的小朋友 100

题目: 幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友 是否同班,请你帮忙把同班的小朋友找出来。 小朋友的编号为整数,与前一位小朋友同班用 Y 表示,不同班用 N 表示。 输入描…

索引【MySQL】

文章目录 什么是索引测试表 磁盘和 MySQL 的交互了解磁盘MySQL 的工作原理Buffer Pool 理解索引引入Page 的结构页内目录(Page Directory)多页情况B 树和 B树聚簇索引和非聚簇索引 主键索引创建 唯一索引主要特点与主键索引的区别使用场景创建 联合索引工…

思维+数学期望,CF 1525E Assimilation IV

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1525E - Codeforces 二、解题报告 1、思路分析 看数据量盲猜O(…

树的层序遍历(详解)

下面以一道力扣题为例: 代码和解释如下: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(…

零基础HTML教程(31)--HTML5多媒体

文章目录 1. 背景2. audio音频3. video视频4. audio与video常用属性5. 小结 1. 背景 在H5之前,我们要在网页上播放音频、视频,需要借助第三方插件。 这些插件里面最火的就是Flash了,使用它有几个问题: 首先要单独安装Flash&…

华为Pura 70系列,一种关于世界之美的可能

1874年,莫奈创作了《印象日出》的油画,在艺术界掀起了一场革命。当时的主流艺术,是追求细节写实,追求场面宏大的学院派。他们称莫奈等人是“印象派”,认为莫奈的画追求光影表达,追求描绘抽象的意境&#xf…

echarts地图叠加百度地图底板实现数据可视化

这里写自定义目录标题 echarts地图叠加百度地图实现数据可视化echarts地图叠加百度地图实现数据可视化 实现数据可视化时,个别情况下需要在地图上实现数据的可视化,echarts加载geojson数据可以实现以地图形式展示数据,例如分层设色或者鼠标hover展示指标值,但如果要将echa…

【Redis 开发】一人一单,超卖问题(悲观锁,乐观锁,分布式锁)

锁 悲观锁乐观锁第一种:版本号法第二种:CAS法实现乐观锁 悲观锁与乐观锁的比较 一人一单分布式锁Redis实现分布式锁 悲观锁 认为线程问题一定会发生,因此在操作数据库之前先获取锁,确保线程串行执行,例如Synchronized…

好的猫咪主食冻干到底该咋选?品控稳定的主食冻干推荐

315中国之声报道的河北省邢台市南和区某宠粮代工厂的“行业潜规则”,给各位铲屎官拉响了警钟。配料表上写的鸡肉含量为52%,新鲜鸡小胸含量为20%,所谓的鲜鸡肉其实就是鸡肉粉。本来养宠物是为了让自己身心愉悦,但这样的行业乱象弄得…

prompt提示词:AI英语词典优化版Pro,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 不可思议!我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘 ,真的是高手都是惺惺相惜的,哈哈,自恋一…

发票管理设计方案

1、背景介绍 在供应链金融业务场景下,供应商可以依赖与大型企业的合同、发票信息,到金融机构进行融资。本文探讨发票管理的设计方案。 2、需求分析 如上图所示,发票管理主要分为发票信息的管理以及发票可用余额管理2个部分。 名词解释&…

Docker-概念及配置(超详细)

docker 第一章 1、什么是docker 答:docker是一种容器引擎,通过docker可以将软件安装并且配置好以后,做成一个镜像文件。通过这个镜像文件可以快速的安装、配置软件环境 2、3个概念 【docker镜像】:将软件环境安装配置好以后产生…

【QA】Git的底层原理

前言 本文通过一个简单的示例,来理解Git的底层原理。 示例 1、新建本地仓库并上传第一个文件 相关步骤: 新建仓库及创建文件查看文件状态将文件添加到暂存区将文件提交到本地仓库 HMTeenLAPTOP-46U4TV6K MINGW64 /d/GSF_Data/Github/Java/Git/git-…

一张图带你理解 绝对路径 和 相对路径

绝对路径和相对路径是用于定位文件或目录位置的两种不同方式。 1、绝对路径: 绝对路径是从文件系统的根目录开始的完整路径,可以唯一地标识文件或目录的位置。 绝对路径是以根目录开始的 在Unix/Linux系统中,绝对路径是类似于/home/user/do…

2024 OceanBase 开发者大会:OceanBase 4.3正式发布,打造近PB级实时分析数据库

4月20日,2024 OceanBase开发者大会盛大召开,吸引了50余位业界知名的数据库专家和爱好者,以及来自全国各地的近600名开发者齐聚一堂。他们围绕一体化、多模、TP与AP融合等前沿技术趋势展开深入讨论,分享场景探索的经验和最佳实践&a…

基于DEAP数据集的四种机器学习方法的情绪分类

在机器学习领域,KNN(K-Nearest Neighbors)、SVM(Support Vector Machine)、决策树(Decision Tree)和随机森林(Random Forest)是常见且广泛应用的算法。 介绍 1. KNN&am…

Let‘s Move Sui:解锁区块链高性能潜力,探索创新开发体验

Sui 是基于第一原理重新设计和构建而成的 L1 公链,旨在为创作者和开发者提供能够承载 Web3 中下一个十亿用户的开发平台。 今年,Sui 的原生编程语言 Move 迎来了重要的更新升级。2024 版将增加枚举 Enums、宏函数、Method 语法等功能。这些重要的新功能为…

2024.4.28 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、创新点 4、总体流程 5、网络结构 5.1、损失函数 5.2、Confidence Maps 5.3、Part Affinity Fields(PAFs) 5.4、多人的PAFs 6、实验 7、结论 深度学习 yolov8实现目标检测和人体姿态估计 Yolov8网络结构 yaml…