【汇编语言】直接定址表

news/2024/5/19 21:30:23

【汇编语言】直接定址表


文章目录

  • 【汇编语言】直接定址表
  • 前言
  • 一、移位指令
    • 移位指令过程
    • 逻辑移位指令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 中再加入新功能,则需要修改程序的逻辑,加入新的比较、转移指令,比较麻烦。


总结

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


http://www.mrgr.cn/p/25021161

相关文章

实验一———美团APP

墨刀、Axure、Mockplus等原型设计工具优缺点分析: 一、墨刀 优点:在轻量级的移动端原型制作更加迅速,展示更加方便。 缺点:价格较贵,不能画流程图,相对于其他两款功能还不是很全面;应用局限性,专注于app原型设计,在后台和网页稍有乏力;归档能力不足,更倾向于链接、二…

LLM学习(5)——系统评估与优化

5.1 如何评估 LLM 应用 5.1.1 验证评估的一般思路 通过不断寻找Bad Case并进行针对性优化,将这些案例逐步加入验证集,形成一个具有一定样本数量的验证集。针对这种验证集,逐个进行评估变得不切实际,需要一种自动评估方法来对整体性能进行评估。验证迭代是构建以LLM为核心的…

1张图片+3090显卡微调Qwen-VL视觉语言大模型(仅做演示、效果还需加大数据量)

原项目地址:https://github.com/QwenLM/Qwen-VL/blob/master/README_CN.md 环境本地部署(见之前博文) 【本地部署 】23.08 阿里Qwen-VL:能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存) 一、数据集格式说明 …

ESLlint重大更新后,使用旧版ESLint搭配Prettier的配置方式

概要 就在前几天,ESLint迎来了一次重大更新,9.0.0版本,根据官方文档介绍,使用新版的先决条件是Node.js版本必须是18.18.0、20.9.0,或者是>21.1.0的版本,新版ESLint将不再直接支持以下旧版配置(非扁平化…

Modbus转Profinet网关连接LED大屏与PLC通讯

Modbus转Profinet网关(XD-MDPN100)的主要功能是实现Modbus协议和Profinet协议之间的转换和通信。Modbus转Profinet网关集成了Modbus和Profinet两种协议,支持Modbus RTU主站/从站,并可以与RS485接口的设备,如变频器、智能高低压电器、电量测量装置等进行连接。通过Modbus转…

【Go语言】接口类型(一)接口类型与接口的值

本文是介绍golang接口类型的第一篇,主要介绍接口类型与接口类型的值的相关概念。 1. 静态类型、动态类型、动态值 所谓的静态类型(即 static type),就是变量声明的时候的类型。 var age int // int 是静态类型 var name strin…

2024年最好用的10款ER图神器!

分享10款ER图工具,详细分析他们的功能特点、价格和适用场景,可以根据你的需求进行选择。ER图(Entity-Relationship Diagram)是数据库设计中常用的一种模型,用于描述实体之间的关系。这种图形化的表示方法旨在帮助人们理解和设计数据库结构,它们在数据库开发和设计中非常有…

【Network Automation系列】-- 第二章

继续上文,【Network Automation系列】-- 第一章 在第1章,对TCP/IP协议套件和Python的回顾中,我们研究了网络通信协议背后的理论和规范。 我们还快速浏览了一下Python语言。在本章中,我们将开始深入研究使用Python对网络设备的管理。 特别是,我们将研究使用Python以编程方式…

初中中考阅读理解难题一网打尽!句子结构深度解析+答案揭秘,助你轻松冲刺高分!-012

PDF格式公众号回复关键字:ZKYDT012原文1 Richard found the bird in the forest, didn’t he? 解析 1 Richard ,found 发现了, the bird 这只鸟, in the forest 在森林里, didn’t he? 不是吗 理查德在森林里发现了这只鸟,不是吗? 2 He saw a strange bird in a bush. 他…

【51单片机项目】基于51单片机自制多功能小键盘/模拟USB键盘【附源码】(STC89C52RC+CH9328)

目录 一、效果展示 二、创作灵感 三、硬件电路 注意事项 工作原理 四、源码 main.c 五、附录 CH9328工作原理 CH9328的模式选择 ​编辑 全键盘键码值表 参考链接 一、效果展示 该小键盘具有三种功能: 1、自动输入开机密码 2、每隔一段时间自动按下ct…

【Qt 专栏】DateTime日期时间组件

本文转载自:https://cloud.tencent.com.cn/developer/article/2371799 本章将重点介绍QDateTime日期与时间组件的常用方法及灵活运用。在Qt中,日期和时间的处理通常使用 QDateTime 类。QDateTime 是一个用于表示日期和时间的类,而与之相关的组件还包括 QDate 、 QTime以及QD…

【threejs教程7】threejs聚光灯、摄影机灯和汽车运动效果

【图片完整效果代码位于文章末】 在上一篇文章中我们实现了汽车模型的加载,这篇文章主要讲如何让汽车看起来像在运动。同时列出聚光灯和摄像机灯光的加载方法。 查看上一篇👉【threejs教程6】threejs加载glb模型文件(小米su7)&…

七段数码管

import turtle, datetime def drawGap(): # 绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw): # 绘制单段数码管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90) def drawDigit(d): # 根据数字绘制七段…

微软如何打造数字零售力航母系列科普02 --- 微软低代码应用平台加速企业创新 - 解放企业数字零售力

微软低代码应用平台推动企业创新- 解放企业数字零售力 微软在2023年GARTNER发布的魔力象限图中处于头部领先(leader)地位。 其LCAP产品是Microsoft Power Apps,扩展了AI Builder、Dataverse、Power Automate和Power Pages,这些都包…

git 命令怎么回退到指定的某个提交 commit hash 并推送远程分支?

问题 如下图,我要回退到 【002】Babel 的编译流程 这一次提交 解决 1、先执行下面命令,输出日志,主要就是拿到提交 commit 的 hash,上图红框即可 git log或者 vscode 里面直接右击,copy sha 2、执行下面命令回退 g…

条件格式实例

import pandas as pd import numpy as np import datetime todaystr(datetime.date.today())filepath/Users/kangyongqing/Documents/kangyq/202311/班均及合班储备/z拆班校验/ file102查询结果.csv file2工具-国家对应大洲表格_副本.xlsxdf1pd.read_csv(filepathfile1,dtypeob…

golang学习笔记(net/http库基本使用)

关于net/http库 我们先看看标准库net/http如何处理一个请求。 import ("fmt""log""net/http" )var count 0func main() {http.HandleFunc("/", handler)http.HandleFunc("/count", counter)log.Fatal(http.ListenAndServ…

OpenHarmony音视频—opus

简介 Opus是一种用于在互联网上进行交互式语音和音频传输的编解码器。它可以从低比特率窄带语音扩展到非常高的高品质立体声音乐。 下载安装 直接在OpenHarmony-SIG仓中搜索opus并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的opus库代码存在以下路径&a…

猿人学内部练习平台6~10题

第六题:session保持检测 使用session请求即可:session = requests.Session() 第七题:请求规律检测1-post 根据请求接口找规律,在每一页请求前请求一次https://www.python-spider.com/cityjson即可 requests.post(https://www.python-spider.com/cityjson, verify=False) re…

Sound Siphon for Mac:音频处理与录制工具

Sound Siphon for Mac是一款专为Mac用户设计的音频处理与录制工具,以其出色的性能、丰富的功能和简便的操作而备受赞誉。 Sound Siphon for Mac v3.6.8激活版下载 该软件支持多种音频格式,包括MP3、WAV、AAC、FLAC等,用户可以轻松导入各种音频…