《汇编语言》 第3版 (王爽)实验6解析

第7章 实验6解析


(1).编程,完成问题7.9中的程序。
问题7.9
编程,将datasg段中每个单词的前4个字母改为大写字母。

assume cs:codesg,ss:stacksg,ds:datasgstacksg segment  ;开辟了栈段空间,容量为16个字节dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment   ;开辟了数据段空间db '1. display      'db '2. brows        'db '3. replace      'db '4. modify       '
datasg ends
codesg segment
start:mov ax,stacksg  ;将栈的段地址放入AX寄存器中mov ss,ax       ;将AX寄存器中的内容放入SS段寄存器中,即栈的段地址mov sp,16       ;设置栈顶指针mov ax,datasg   ;将数据的段地址放入AX寄存器中mov ds,ax       ;将AX寄存器中的内容放入DS中,即数据的段地址mov bx,0        ;0送入BX寄存器中mov cx,4        ;一共有4个单词,所以外层循环四次s0:push cx         ;将CX中的值入栈保存mov si,0        ;0送入SI寄存器中,以便后续寻址使用mov cx,4        ;每个单词中又要修改四个字母,所以内层循环四次s:mov al,[bx+si+3]  ;将内存单元DS:bx+si+3中的数据送入AL中and al,11011111b  ;改成大写字母mov [bx+si+3],al  ;修改原来的数据inc si            ;si+1指向下一个数据loop sadd bx,16         ;bx+16指向下一个单词pop cx            ;出栈原来保存的CS中的值loop s0mov ax,4c00hint 21h
codesg ends
end start

将上述程序在DOS中运行后,可使用D命令查看内存单元中的数据如下:
程序未执行前内存单元中的数据如下
在这里插入图片描述程序执行后内存单元中的数据如下
在这里插入图片描述
可看到前四个字母修改成了大写

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ai-WB2-32S在window下使用vs 和 msys2编译以及烧录

文章目录 前言一、使用前准备第一步 安装vscode第二步 安装msys2 二、使用步骤1.打开MSYS2 MINGW64(1)在开始栏中找到MSYS2 MINGW64并打开(2)安装git(3)安装make(4)安装好之后的文件…

C# 中 Interpreter 用于解释执行代码的工具

在 C# 中,Interpreter 是一个用于解释执行代码的工具,它提供了一种在运行时动态解释和执行 C# 代码的方式。Interpreter 类位于 Microsoft.CodeAnalysis.CSharp.Scripting 命名空间中,它允许你通过编写代码字符串来执行 C# 代码。 下面是一些…

每日一题——LeetCode1576.替换所有的问号

方法一 3个字母原则 把?替换为和他左右都不相等的字符,那么找3个字符abc,?总能替换为abc中的一个字符,遍历字符串找到所有?,再遍历abc把?替换为abc中的一个字符 var modifyString …

Redis缓存【重点】

参考链接 https://xiaolincoding.com/redis/cluster/cache_problem.html#%E7%BC%93%E5%AD%98%E9%9B%AA%E5%B4%A9 目录 缓存雪崩大量数据同时过期Redis 故障宕机 缓存击穿第一种方案,非法请求的限制第二种方案,缓存空值或者默认值第三种方案,使…

【C++】继续学习 string类 吧

开始使用 string类 吧 1 继续学习1.1 扩容机制1.2 string类对象的访问及遍历操作1.3 string类对象的修改操作1.4 其他一些成员函数 2 实践解决问题:Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见&…

透明玻璃屏幕为什么那么贵

透明玻璃屏幕之所以价格较高,主要是由于以下几个方面的原因: 技术研发与创新:透明玻璃屏幕作为一种先进的显示技术,其研发和制造过程涉及到许多复杂的技术。这些技术的研发和创新需要投入大量的资金和时间。此外,透明玻…

操作系统概念概述

软件设计师11--操作系统 考点1:操作系统的作用操作系统概述例题: 考点2:特殊的操作系统例题: 考点1:操作系统的作用 操作系统概述 管理系统的硬件、软件、数据资源控制程序运行人机之间的接口应用软件与硬件之间的接口…

MySQL 缓存策略

MySQL 缓存方案用来干什么 ? 缓存用户定义的热点数据,用户直接从缓存中获取热点数据,降低数据的读写压力。场景分析 内存访问速度是磁盘访问速度的 10 万倍。读的需求远远大于写的需求MySQL 自身缓冲层跟业务无关。MySQL 作为项目主要数据库&#xff0…

winui开发笔记(五)应用程序图标

应用程序图标、发布者、显示名称大部分都在package.appxmanifest清单文件中,可以正常打开,也可以使用xml文本编辑器打开。 以下是一个正常的应用程序中所有的与图标相关的图片: 但是设置之后会有一圈白,包括在电脑最下边一行&…

Python异步IO库之uvloop使用详解

概要 在Python中,异步编程已经成为处理高并发和IO密集型任务的主要方式之一。而uvloop库则是一个专门针对异步IO操作进行优化的库,它能够显著提高异步程序的性能。本文将深入探讨uvloop库的使用方法、功能特性以及如何利用它来加速异步IO编程。 什么是uvloop库? uvloop是一…

Tensorflow2.0笔记 - 计算梯度

本笔记主要记录tf.GradientTape和tf.gradient的用法 import tensorflow as tf import numpy as nptf.__version__#要计算梯度的所有参数计算过程必须放到gradient tape中 #with tf.GradientTape as tape: w tf.constant(1.) x tf.constant(2.)with tf.GradientTape() as tap…

防御保护--课程笔记

一、内容安全 攻击可能只是一个点,防御需要全方面进行 IAE引擎 1、DFI和DPI技术 --- 深度检测技术 (1)DPI --- 深度包检测技术 --- 主要针对完整的数据包(数据包分片,分段需要重组),之后对 数据…