当前位置: 首页 > news >正文

nas汇编程序的调试排错方法

nas汇编程序的调试排错方法:
1、查找是哪一步错了
2、查看对应的*.lst文件,本例中是"asmhead.lst"
3、根据*.lst文件的[ERROR #002]提示查看源码,改错。
4、重新运行编译,OK

1、查找是哪一步错了:

nask.exe编译汇编程序时出错了

//----------------------------
//运行boyI报错:
E:\techdoc\30dayOS\code\day03\boyI>..\..\tolset\z_tools\make.exe
make.exe -r img
make.exe[1]: Entering directory `E:/techdoc/30dayOS/code/day03/boyI'
make.exe -r haribote.img
make.exe[2]: Entering directory `E:/techdoc/30dayOS/code/day03/boyI'
nask.exe ipl10.nas ipl10.bin ipl10.lst
nask.exe asmhead.nas asmhead.bin asmhead.lst
NASK : 1 errors.
make.exe[2]: *** [asmhead.bin] Error 1
make.exe[2]: Leaving directory `E:/techdoc/30dayOS/code/day03/boyI'
make.exe[1]: *** [img] Error 2
make.exe[1]: Leaving directory `E:/techdoc/30dayOS/code/day03/boyI'
..\..\tolset\z_tools\make.exe: *** [default] Error 2E:\techdoc\30dayOS\code\day03\boyI>

2、查看对应的"asmhead.lst"文件:

在文件中根据关键字"[ERROR"查找就可以了。
E:\techdoc\30dayOS\code\day03\boyI\asmhead.lst

    23 0000C20B C7 06 0FF4 0140                 	MOV WORD [SCRNX],32024 0000C211                                 	MOV WROD [SCRNY],200>> [ERROR #002] parameter error.25 0000C211 66 C7 06 0FF8 000A0000          	MOV DWORD [VRAM],0x000a000026 0000C21A                                 	;用BIOS取键盘上各种指示灯的状态27 0000C21A B4 02                           	MOV AH,0x02

3、根据"asmhead.lst"文件的[ERROR]提示查看源码

24 0000C211 MOV WROD [SCRNY],200
>> [ERROR #002] parameter error.
查看"asmhead.nas"汇编程序源码:MOV WROD [SCRNY],200
错误原因:WORD写成了WROD
修改为:MOV WORD [SCRNY],200

4、重新运行编译,OK

E:\techdoc\30dayOS\code\tolset\day03_boyI>makeE:\techdoc\30dayOS\code\tolset\day03_boyI>..\z_tools\make.exe
../z_tools/make.exe -r img
make.exe[1]: Entering directory `E:/techdoc/30dayOS/code/tolset/day03_boyI'
../z_tools/make.exe -r haribote.img
make.exe[2]: Entering directory `E:/techdoc/30dayOS/code/tolset/day03_boyI'
../z_tools/nask.exe ipl10.nas ipl10.bin ipl10.lst
../z_tools/nask.exe asmhead.nas asmhead.bin asmhead.lst
../z_tools/cc1.exe -I../z_tools/haribote/ -Os -Wall -quiet -o bootpack.gas bootpack.c
../z_tools/gas2nask.exe -a bootpack.gas bootpack.nas
../z_tools/nask.exe bootpack.nas bootpack.obj bootpack.lst
../z_tools/obj2bim.exe @../z_tools/haribote/haribote.rul out:bootpack.bim stack:3136k map:bootpack.map \bootpack.obj
../z_tools/bim2hrb.exe bootpack.bim bootpack.hrb 0
copy /B asmhead.bin+bootpack.hrb haribote.sys
asmhead.bin
bootpack.hrb
已复制         1 个文件。
../z_tools/edimg.exe   imgin:../z_tools/fdimg0at.tek \wbinimg src:ipl10.bin len:512 from:0 to:0 \copy from:haribote.sys to:@: \imgout:haribote.img
make.exe[2]: Leaving directory `E:/techdoc/30dayOS/code/tolset/day03_boyI'
make.exe[1]: Leaving directory `E:/techdoc/30dayOS/code/tolset/day03_boyI'E:\techdoc\30dayOS\code\tolset\day03_boyI>

nsm汇编程序的调试排错方法:**
1、查找是哪一步错了
2、查看对应的*.lst文件,本例中是"asmhead.lst"
3、根据*.lst文件的[ERROR #002]提示查看源码,改错。
4、重新运行编译,OK

(全文完)

相关文章:

nas汇编程序的调试排错方法

nas汇编程序的调试排错方法: 1、查找是哪一步错了 2、查看对应的*.lst文件,本例中是"asmhead.lst" 3、根据*.lst文件的[ERROR #002]提示查看源码,改错。 4、重新运行编译,OK 1、查找是哪一步错了: nask.ex…...

【网络安全带你练爬虫-100练】第21练:批量获取文件夹中文件名

目录 一、目标1:使用python爬取指定文件夹中的文件名 二、目标2:在文件夹指定目录打开命令行 一、目标1:使用python爬取指定文件夹中的文件名 方法一:使用os模块 将/path/to/folder替换为实际的文件夹路径。os.listdir()函数用…...

Unittest自动化测试框架vs Pytest自动化测试框架

引言   前面一篇文章Python单元测试框架介绍已经介绍了python单元测试框架,大家平时经常使用的是unittest,因为它比较基础,并且可以进行二次开发,如果你的开发水平很高,集成开发自动化测试平台也是可以的。而这篇文章…...

PHP8的数组-PHP8知识详解

今天开始学习数组, 本文主要讲了三点:什么是数组、php8中数组的改进、数组函数。 一、什么是数组 在PHP8中,数组是非常重要的数据类型。相对于其他的数据类型,数组更像一种结构,而这种结构可以储存一系列数值。 数组…...

数据仓库_维度表的两大分类

最近看一篇文章对维度表进行了分类,记录一下。 维度表主要分为两类高基数维度表和低基数维度表。 高基数维度数据 一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 低基数维度数据 一般是配置表,比如枚举值对应的中文含…...

4、DVWA——文件包含

文章目录 一、文件包含概述二、low2.1 源码分析2.2 通关分析 三、medium3.1 源码分析3.2 通关思路 四、high4.1 源码分析4.2 通关思路 五、impossible 一、文件包含概述 文件包含是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(i…...

产品经理如何进行需求管理

产品经理在进行需求管理时,可以遵循以下步骤: 1. 确定需求目标:明确产品的愿景和目标,确定需求管理的方向和重点。 2. 收集需求:与利益相关者(包括用户、业务部门、技术团队等)沟通,…...

【从0学习Solidity】2. 值类型详解

Solidity极简入门: 2. 值类型 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发…...

框架分析(9)-Hibernate

框架分析(9)-Hibernate 专栏介绍Hibernate特性对象关系映射(ORM)数据库连接和事务管理查询语言(HQL)缓存机制透明的持久化操作对象的延迟加载事务管理 优缺点优点简化数据库操作跨数据库平台高度可定制性缓…...

JavaScript中的原型链(prototype chain)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript中的原型链⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…...

设计模式之代理模式与外观模式

目录 代理模式 简介 优缺点 角色职责 实现 运用场景 外观模式 简介 角色职责 优缺点 实现 使用场景 代理模式 简介 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为…...

动手学深度学习(四)多层感知机

目录 一、多层感知机的从零开始实现 1.1 初始化模型参数 1.2 实现Relu函数 1.3 实现模型 1.4 训练 二、多层感知机的简洁实现 2.1 实现模型 2.2 训练 三、模型选择 3.1 训练误差和泛化误差 3.2 验证数据集和测试数据集 3.3 过拟合和欠拟合 3.4 代码实现 3.4.1 生…...

融云出海:社交泛娱乐出海,「从 0 到 1」最全攻略

9 月 21 日,融云直播课社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频社交应用? 欢迎点击上方小程序报名~ 本期我们翻到《地图》的实践篇,从赛道/品类选择、目标地区适配、用户增长、变现模式、本地化运营、跨国团队管理等方面完整描绘…...

生成式人工智能促使社会转变

作者:JEFF VESTAL 了解 Elastic 如何处于大型语言模型革命的最前沿 – 通过提供实时信息并将 LLM 集成到数据分析的搜索、可观察性和安全系统中,帮助用户将 LLM 提升到新的高度。 iPhone 社会转变:新时代的黎明 曾几何时,不久前…...

【STM32】SPI初步使用 读写FLASH W25Q64

硬件连接 (1) SS( Slave Select):从设备选择信号线,常称为片选信号线,每个从设备都有独立的这一条 NSS 信号线,当主机要选择从设备时,把该从设备的 NSS 信号线设置为低电平,该从设备即被选中,即…...

javaScript:DOM(父子/兄弟)常用属性

目录 前言 一.父子关系 父子关系的常用属性 childNodes 获取所有的子节点 children 获取所有的子元素(dom元素) firstChild 获取元素的第一个子节点,相当于 childNodes[0] firstElementChild 获取元素的第一个元素 相当于 children[0]…...

笔记:linux中LED(GPIO)驱动设备树配置和用法

设备树中节点配置 设备树中的LED驱动一般是这样写&#xff0c;LED驱动可以控制GPIO的电平变化&#xff0c;生成文件节点很方便 leds: leds {compatible "gpio-leds";gpio_demo: gpio_demo {label "gpio_demo";gpios <&gpio0 RK_PC0 GPIO_ACTIV…...

能耗管理+分区温控成为开发节能、省电神器的关键!从此告别电费刺客时代

取暖器在人们脑海中最深刻的印象&#xff0c;就是费电&#xff01;而它耗电量大的原因&#xff0c;主要在于它是靠电能直接转化为热能&#xff1a;在取暖设备通电后&#xff0c;内部高电阻的电热丝发热&#xff0c;风机会将这股热量吹散到室内&#xff0c;从而达到全屋取暖的效…...

垃圾回收 - 复制算法

GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点&#xff0c;就是只把某个空间的活动对象复制到其它空间&#xff0c;把原空间里的所有对象都回收掉。这是一个大胆的想法。在此&#xff0c;我们将复制活动对象的原空间称为From空间&#xff0c;将粘贴活动对象的新…...

基于SpringMVC实现常见功能

基于SpringMVC实现常见功能 防止XSS攻击 XSS攻击全称跨站脚本攻击&#xff0c;是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆&#xff0c;故将跨站脚本攻击缩写为XSS&#xff0c;XSS是一种在web应用中的计算机安全漏洞&#xff0c;它允许恶意web用户将代码植入到…...

MetInfo5.0文件包含漏洞

MetInfo历史版本与文件 环境在这里下载&#xff0c;使用phpstudy搭建 我们来看到这个index.php&#xff0c;如下图所示&#xff0c;其中定义了fmodule变量与module变量&#xff0c;其中require_once语句表示将某个文件引入当前文件&#xff0c;在这个代码中&#xff0c;通过r…...

【SpringBoot】SpringBoot实现基本的区块链的步骤与代码

以下是Spring Boot实现基本的区块链代码的步骤&#xff1a; 创建一个Block类&#xff0c;它表示一个区块&#xff0c;包含一个区块头和一个区块体。区块头包括版本号、时间戳、前一个区块的哈希值和当前区块的哈希值。区块体包含交易数据。 创建一个Blockchain类&#xff0c;它…...

Photoscan/Metashape 2.0.0中的地面激光扫描处理

在Metashape(原Photoscan)2.0.0, 结构化地面激光扫描和非结构化航空激光扫描都可以使用导入点云&#xff08;文件>导入>导入点云&#xff09;命令导入。导入时会保留所有点属性&#xff08;包括结构化信息&#xff09;。 本文讨论以下主题 如何将激光扫描数据导入项目&am…...

git快速使用

1、下载git 设置签名 2、基本概念 工作区&#xff1a;写代码的地方。 暂存区&#xff1a;.git的.index 工作区&#xff1a;.git 3、常用操作 本地codinggit init&#xff0c; 初始化一个本地仓库&#xff0c;项目根目录下会出现个.gitgit remote add origin gitgithub.com…...

java 实现代理模式

代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许一个对象&#xff08;代理对象&#xff09;充当另一个对象&#xff08;被代理对象&#xff09;的接口&#xff0c;以控制对该对象的访问。代理模式通常用于以下情况&#xff1a; 远程代理…...

【每日一题】力扣1768. 交替合并字符串

题目以及链接&#xff1a; 1768. 交替合并字符串 给你两个字符串 word1 和 word2 。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 1&…...

vscode新建vue3文件模板

输入快捷新建的名字 enter 确认后在文件中输入以下内容 {// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and// description. The prefix is what is used to trigger the snippet and the body will be expand…...

MySql学习笔记02——MySql的简单介绍

MySQL 常用命令 注意在mysql中使用的命令需要用英文分号结尾&#xff08;启动/关闭mysql服务不需要带分号&#xff09; net start mysql 启动mysql服务&#xff08;需要管理员启动cmd&#xff09; net stop mysql关闭mysql服务&#xff08;需要管理员启动cmd&#xff09; m…...

mysql-1:认识mysql

文章目录 数据库概述什么是数据库什么是关系型数据库 MySQL的概述MySQL是什么MySQL发展历程 SQL的概述什么是SQLSQL发展的简要历史&#xff1a;SQL语言分类 数据库概述 什么是数据库 数据库就是[存储数据的仓库]&#xff0c;其本质是一个[文件系统]&#xff0c;数据按照特定的…...

算法通关村-----堆在查找和排序中的应用

数组中的第K个最大元素 问题描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。详见le…...

网站制作框架/网络销售工作靠谱吗

1.挑个富文本编辑器首先针对自己项目的类型&#xff0c;确定自己要用啥编辑器。1.1 wangeditor如果一般类似博客这种项目不需要花里胡哨的&#xff0c;功能也不要求贼多的&#xff0c;推荐一下wangeditor(点击跳转)。能覆盖基本上所有的常见操作&#xff0c;轻量化&#xff0c;…...

wordpress做直播网站吗/广告网络推广怎么做

#如果node加入不了master或者加入成功但是&#xff0c;在master中显示不出来。排查错误:1. 运行&#xff0c;kubelet, 查看日志&#xff0c;一般是kubelet的运行和docker启动方式不匹配。调整&#xff1a;vim /etc/docker/daemon.json修改&#xff1a;native.cgroupdrivercgro…...

网站内容避免被采集/seo网络推广课程

当然用啊&#xff0c;新手的话建议入手两本左右的基础书籍。 最重要的是你要明确自己要做什么&#xff1f; 学习python,要明确自己的方向,python作为一门工具,能做的事情很多,如果你想要做web开发,那就需要学习django,flask等框架,如果你想做数据分析,那就需要学习numpy pandas…...

在哪里可以学做网站/100个电商平台

Matplotlib ——&#xff08;分解&#xff09; Matrix Plot Library 矩阵 绘图  库 一个极其强大的Python绘图库。官网&#xff1a;matplotlib.org 很少的代码即可绘制2D/3D&#xff0c;静态/动态等各种图形 一般常用的是它的子包&#xff1a;PyPlot&#xff0c;提…...

网站新功能演示用什么技术做的/seo怎么搞

今天下了emacs,第一眼看中了,很喜欢!终于不用去逼自己,适应vim的黑色主题了,话说vim给我的第一感觉就不爽!今天老子要换编辑器啦!嘿嘿同时希望51cto能长办不倒,不然我的文章要丢了!...转载于:https://blog.51cto.com/13497359/2043915...

北京怎么样做网站/网络营销的有哪些特点

集合&#xff1a;&#xff08;同数学概念&#xff09; 多个元素的无序组合 - 用{} 表示&#xff0c;元素间用逗号分隔 - 元素类型不必相同 - 每个元素唯一&#xff0c;不存在相同元素 - 元素不可更改&#xff0c;不能是可变数据类型 创建集合类型&#xff1a; {} 或 set()&…...