王爽汇编语言第三版实验3

实验任务

  1. 将下面的程序保存为t1.asm,将其生成可执行文件t1.exe

用Vscode编写源程序t1.asm

在这里插入图片描述

用脚本一键生成可执行文件t1.exe

在这里插入图片描述

成功运行

在这里插入图片描述

查看资源管理器,成功生成T1.obj与t1.exe文件‘

在这里插入图片描述

  1. debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容

    同样用脚本一键调试程序
    在这里插入图片描述

u命令验证一下,指令是否写入程序
在这里插入图片描述

用t命令逐步执行
在这里插入图片描述

在这里插入图片描述

这里要注意的是当遇到int 21终止指令的时候,要使用p命令而不是用t命令
在这里插入图片描述

这里第一次做因为没有使用t命令,导致程序并没有正常退出
在这里插入图片描述

根据上面的运行结果,得出各个寄存器的值是
在这里插入图片描述

  1. PSP的头两个字节是CD20,用Debug加载t1.exe,查看PSP的内容

通过r命令查看cs与ds的内容
在这里插入图片描述

刚好相差256字节,由此可以判断出psp的起始地址为0e14:0000,检查一下:
在这里插入图片描述

可以看到起始地址的前两个字节是CD 20,由此可以判断该处是PSP的起始地址,没错。

  1. 0FFFF0~0FFFFFH中的8个字,逆序复制到00200H\~0020FH

运行下面的指令即可解决该题

assume cs:codesg
codesg segment
mov ax,20H
mov ds,ax
mov ax,0FFFFH
mov ss,ax
mov sp,0
pop [E]
pop [C]
pop [A]
pop [8]
pop [6]
pop [4]
pop [2]
pop [0]
mov ax,4c00H
int 21H
codesg ends
end

执行程序之前:

在这里插入图片描述

执行程序后:
在这里插入图片描述

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

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

相关文章

大模型生图安全疫苗注入——进阶解决方案与系统优化(DataWhale组队学习)

引言 大家好,我是GISer Liu😁,上篇博客中,我们基于DataWhale 2024年10月大模型生图安全疫苗注入赛道的任务,介绍了攻击与防御的基本策略,如通过上下文稀释法、隐喻替换等绕过检测机制,并提出了多…

win10远程桌面打开后,其他主机访问时会报错:发生内部错误;关闭远程桌面,则报无法连接;

win10远程桌面打开后,其他主机访问时会报错:发生内部错误;关闭远程桌面,则报无法连接; 该问题困扰两天,最后这篇文章找到解决方法,成功连上了:https://www.zun.com/zx/yunwei/4798.h…

三维指纹定位,MATLAB编写的代码

文章目录 介绍:三维指纹定位系统产品概述主要特点技术细节适用场景代码 运行结果代码截图与程序结构 介绍:三维指纹定位系统 产品概述 此三维指纹定位系统采用先进的 K N N KNN KNN(K-最近邻)算法,结合四个基站的信号…

Python画笔案例-086 turtle 多线程绘画

1、turtle 多线程绘画 通过 python 的turtle 库 多线程绘画,如下图: 2、实现代码 turtle 库 多线程绘画,以下为实现代码: """多线程绘画.py """ from random import random,randint from turtle import Turtle,Screen from threading

力扣66~70题

题66(简单): python代码: class Solution:def plusOne(self, digits: List[int]) -> List[int]:s_str.join([str(i) for i in digits])nstr(int(s_str)1)n_strlist(n)res[int(i) for i in n_str]return res题67(简…

018_FEA_Structure_Static_in_Matlab三维结构静力学分析

刹车变形分析 本示例展示了如何使用 MATLAB 软件进行刹车变形分析。 这个例子是Matlab官方PDE工具箱的第一个例子,所需要的数据文件都由Matlab提供,包括CAD模型文件。 步骤 1: 导入 CAD 模型 导入 CAD 模型,这里使用的是一个带有孔的支架模…

C# 实操高并发分布式缓存解决方案

1. CAP 原则 CAP 原则也称为布鲁尔定理,由 Eric Brewer 在 2000 年提出,描述了分布式系统中的三个核心属性:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tol…

OpenCV高级图形用户界面(15)注册一个回调函数来处理鼠标事件的函数setMouseCallback()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 为指定的窗口设置鼠标处理器。 setMouseCallback 是 OpenCV 中的一个功能,允许开发者注册一个回调函数来处理鼠标事件。当用户在窗口…

ORACLE 19C安装 RAC报错

1. 问题描述 在Oracle 19C RAC的安装过程中,使用克隆方式在两个节点上部署集群。当第一个节点配置好基础服务后,关机并克隆节点。当尝试在第二个节点上通过页面进行RAC安装时,出现以下错误: [INS-32070] Could not remove the n…

React01 开发环境搭建

React 开发环境搭建 一、创建 React 项目二、项目精简 一、创建 React 项目 执行下述命令创建 react 项目 blu-react-basis npx create-react-app blu-react-basis项目目录结构如下: 执行下述命令启动项目 npm run start启动效果如下: 二、项目精简 …

Vue3:同一项目同一浏览器只允许打开一个标签页

说明: 阻止同一浏览器打开多个项目标签页,防止多标签页重复时间统计累加,适用于基于微信公众号页面或指定浏览器的计时统计等项目活动,计时在线学习时间统计等。 效果: main.js import {createApp} from vue import…

【Linux系统编程】第三十四弹---使用匿名管道构建简易Linux进程池

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、引言 2、进程池的基本概念 3、管道在进程池中的应用 4、进程池的实现 4.1、master类定义 4.2、测试信道 4.3、通过cha…

OpenCV高级图形用户界面(12)用于更改指定窗口的大小函数resizeWindow()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::resizeWindow() 函数用于更改指定窗口的大小。这使得你可以根据需要调整窗口的宽度和高度。 注释 指定的窗口大小是指图像区域的大小。工具栏…

Linux 手撕线程池

前言 线程池 是 池化技术 中很典型的一个,它旨在高效的管理和复用线程资源!在现在的计算机体系中,线程是执行任务(调度)的基本单位。然而,频繁的创建和销毁线程也会带来较大的开销,包括系统资源…

区块链开发入门: 原理、技术与实践

随着区块链技术的迅猛发展,它不仅改变了金融领域,还对供应链、医疗、身份认证等多个行业产生了深远影响。对于想要进入区块链开发领域的初学者而言,了解区块链的基本原理、相关技术以及实际应用场景至关重要。本文将为您提供一份全面的区块链…

网络变压器在PCIe网口应用的案例

PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机总线标准,用于连接计算机主板上的设备,如显卡、网络适配器、存储控制器等。H82422S 网络变压器(Ethernet Transformer),在…

[Git]一文速通

概述 Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等, )在软件开发过程中被广泛使用 Git的作用 代码回溯版本切换多人协作远程备份 通过Git 仓库来存储和管理代码 文件,Git 仓库分为两种: 本地仓库: 开…

循序渐进丨在 MogDB 数据库中实现 Oracle ASH能力

我们都知道,当 Oracle 数据库出现性能故障后,一般会在线上实时诊断数据库性能问题,特别是资源突然打高的场景,这个时候用到ASH的数据,就能很大程度上准确定位问题所在。 Oracle ASH 在 Oracle 数据库中,实…

基于微博评论的自然语言处理情感分析

目录 一、项目概述 二、需要解决的问题 三、数据预处理 1、词汇表构建(vocab_creat.py) 2、数据集加载(load_dataset.py) 四、模型构建(TextRNN.py) 1、嵌入层(Embedding Layer&#xff…

【学术会议论文投稿】ECMAScript标准:塑造现代Web开发的基石

https://www.ais.cn/attendees/index/MVNV3U 更多学术会议论文投稿请看:https://ais.cn/u/nuyAF3 目录 引言 ECMAScript的历史背景与版本更新 ECMAScript的核心特性 1. 变量和数据类型 2. 变量声明 3. 运算符 4. 控制流语句 5. 函数 6. 错误处理 7. 模板…