4.7 数组的读取和写入,type指令和一些杂项

news2024/10/11 14:22:15

4.7 数组的读取和写入,type指令和一些杂项

可以通过word ptr将db转为dw,然后按照dw的方式去存储数据

1. 段名也可以把其地址赋给变量

assume cs:codesg,ds:data,ss:stack
data segment
    db 12,34
    dw 12,34
    db 'hello world'
data ends
stack segment
    db 10 dup (0)
stack ends
codesg segment
    start:
    mov ax,data
    mov bx,stack
    mov ax,0afh
	
codesg ends
end start

image.png

2. 数组

2.1 type 指令

  • 数组,在定义数据前面加一个符号,就是数组名
  • type后面加数组名可以求出数组的类型,如db为1,dw为2
assume cs:codesg,ds:data,ss:stack
data segment
	arr dw 12,34
	arr2 db 'hello world'
data ends
stack segment
	db 10 dup (0)
stack ends
codesg segment
    start:
    mov ax,type arr
	mov ax,type arr2
	mov ax,0afh
codesg ends
end start

2.2 标号

  • 数据前面也可以是有一个标号的
  • 我们可以取得标号的地址再赋给变量
assume cs:codesg,ds:data,ss:stack
data segment
data ends
stack segment
	db 10 dup (0)
stack ends
codesg segment
	arr dw 12,34
	arr2 db 'hello world'
    start:
    mov si,offset arr
	mov bx,offset arr2
	mov ax,0afh
codesg ends
end start

image.png

2.3 数组的应用

  • 数组也可以通过下标来取值
  • 找到array对应的内存,将其加两个字节,再从那个地方取得元素
  • 如果数组里面存放的是字符,那么从数组取到的则是该字符的ASCII码
  • 如果不加下标,则默认取数组的第一个元素
  • 也可以将变量里面的值赋给数组
assume cs:codesg,ds:data,ss:stack
data segment
data ends
stack segment
	db 10 dup (0)
stack ends
codesg segment
	arr dw 12,34
	arr2 db 'hello world'
    start:
    mov ax,arr[0]
	mov si,offset arr
	mov ax,0afh
codesg ends
end start

image.png

image.png

  • 如果想要访问数据段的数据,得需要将这里的ds和它的标号data联系在一起
mov ax,data
mov ds,ax
  • 例如
assume cs:codesg,ds:data,ss:stack
data segment
	arr db 10h,20h,30h,40h,50h
	arr2 db 'hello world'
data ends
stack segment
	db 10 dup (0)
stack ends
codesg segment

    start:
    mov ax,data
	mov ds,ax
	mov al,arr[2]
	mov bx,data
codesg ends
end start

image.png

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

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

相关文章

Android JNI基础

目录 一、JNI简介1.1 什么是JNI1.2 用途1.3 优点 二、初探JNI2.1 新建cpp\cmake2.2 build.gradle配置2.3 java层配置2.4 cmake和c 三、API详解3.1 JNI API3.1.1 数据类型3.1.2 方法 3.2 CMake脚本 四、再探JNI 一、JNI简介 1.1 什么是JNI JNI(Java Native Interfa…

医疗器械网络安全 | 美国FDA审批程序和欧盟合格评定程序的区别

要进入美国与欧洲市场,均需要通过评定程序审批。 两者的审批流程核心区别在于:所有在美国上市流通的医疗器械产品必须经过FDA的审核认证,才能投放市场。而欧盟市场,医疗器械制造商只需要自证设备合规性,并有指定机构干…

5.2 通用代码,数组求和,拷贝数组,si配合di翻转数组

5.2 通用代码,数组求和,拷贝数组,si配合di翻转数组 1. 通用代码 通用代码类似于一个用汇编语言写程序的一个框架,也类似于c语言的头文件编写 assume cs:code,ds:data,ss:stack data segmentdata endsstack segmentstack endsco…

超文本传输协议HTTP

HTTP协议 在网络通信中,我们可以自己进行定制协议,但是也有许多已经十分成熟的应用层协议,比如我们下面说的HTTP协议。 HTTP协议简介 HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议,是一…

前端html+css+js常用总结快速入门

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 学习前端全套所有技术性价比低下且容易忘记,先入门学会所有基础的语法(cssjsheml)&#xff…

LabVIEW太赫兹波扫描成像系统

LabVIEW太赫兹波扫描成像系统 随着科技的不断发展,太赫兹波成像技术因其非电离性、高穿透性和高分辨率等特点,在生物医学、材料质量无损检测以及公共安全等领域得到了广泛的应用。然而,在实际操作中,封闭性较高的信号采集软件限制…

使用ffmpeg将视频解码为帧时,图像质量很差

当使用ffmpeg库自带的ffmpeg.exe对对视频进行解帧或合并时,结果质量很差。导致这种原因的是在使用ffmpeg.exe指令进行解帧或合并时使用的是默认的视频码率:200kb/s。 如解帧指令: ffmpeg.exe -i 600600pixels.avi -r 2 -f image2 img/%03d.…

AI绘图:Stable Diffusion WEB UI 详细操作介绍:进阶-面部修复和调参

结合两篇文章完成了本地部署和基础操作,现在我们来介绍下进阶内容:面部修复,高清修复和调参区。 一:脸部修复 面部修复的适用在画真人、三次元的场景,特别是在画全身的时候 一般在画全身,由于脸部占比的空间比较小,那么绘制出来的效果就会比较差 1.面部修复 SD 支持…

日志服务 HarmonyOS NEXT 日志采集最佳实践

作者:高玉龙(元泊) 背景信息 随着数字化新时代的全面展开以及 5G 与物联网(IoT)技术的迅速普及,操作系统正面临前所未有的变革需求。在这个背景下,华为公司自主研发的鸿蒙操作系统&#xff08…

Linux Shell:`cat`命令

Linux Shell:cat命令 Linux 系统中的 cat 命令是一种多用途的工具,主要用于查看、创建、连接和追加文件内容。其名称来源于 concatenate 的缩写,意味着它可以用来连接文件内容到标准输出(屏幕)。在日常使用中&#xf…

算法基础--二分

😀前言 二分查找是一种常见的算法技巧,通过不断缩小搜索范围,快速找到目标值的算法。在实际应用中,二分查找可以应用于有序数组中的查找、求上界、求下界等问题,具有较高的效率和广泛的应用价值。 🏠个人主…

scoped原理及使用

一、什么是scoped,为什么要用 在vue文件中的style标签上,有一个特殊的属性:scoped。 当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,通过该属性,可以使得组件之间的样式不互相污染。…

C# 登录界面代码

背景 MVVM 是一种软件架构模式,用于创建用户界面。它将用户界面(View)、业务逻辑(ViewModel)和数据模型(Model)分离开来,以提高代码的可维护性和可测试性。 MainWindow 类是 View&a…

网络协议——VRRP(虚拟路由冗余协议)原理与配置

1. VRRP概述 单网关出现故障后下联业务中断,配置两个及以上的网关时由于IP地址冲突,导致通讯时断时续甚至通信中断。VRRP组播类的网络层协议 2. 协议版本 VRRP v2: 支持认证,仅适用于IPv4网络 VRRP v3: 不支持认证, 适用于IPv4和IPv6两种网…

ES学习日记(九)-------logstash导入数据

一、安装和下载 es官网下载地址 官方介绍:Logstash是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。(我们的存储库当然是 Elasticsearch。) 下载和ES一样的版本(很重要,必须这…

适配器: stack与queue

模板的使用 容器的复用 传容器: 控制底层是那个控制传仿函数: 控制大小堆的建立 stack 特点: 后进先出底层: 容器的封装(vector, list, dequeue)场景: 模拟递归, 函数压栈等接口:empty(), size(), top(), push(), pop()代码: stack queue 特点: 先进先出底层: 容器的封装…

Linux中的shell脚本之流程控制循环遍历

3 条件判断 4 流程控制语句 1)if 语句 案例,用户输入用户名和密码,判断用户名是否是admin,密码是否是123,如果正确,则显示登录成功 首先我创建了shell文件,touch getpawer 其中getpawer 是我自己命的名 #!/bin/bas…

基于SpringBoot的药品管理系统设计与实现

介绍 药品管理员: 登录、退出、药品信息录入、药厂信息录入、采购人信息录入、药品信息浏览、药厂信息浏览、采购人信息浏览、药品信息查询入库修改删除、药信息查询修改删除采购人信息查询修改删除、入库记录浏览出库记录浏览、系统帮助 取药处人员: 登录、退出、…

[源码] Android 上的一些快捷方式,如通知、快捷方式等

目录 一、通知0. 配置权限1. 测试发送通知代码2. 打开通知设置界面代码3. 前台服务创建常驻通知 二、快捷方式1. 测试添加动态快捷方式代码 三、开发者图块四、桌面小部件 基于jetpack compose 框架的使用代码 一、通知 参见 官方文档 0. 配置权限 <uses-permission andr…

Matlab梁单元有限元编程:铁木辛柯梁VS欧拉梁

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…