当前位置: 首页 > 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用户将代码植入到…...

3大核心功能解析:飞秋Mac版如何实现高效局域网通信

3大核心功能解析&#xff1a;飞秋Mac版如何实现高效局域网通信 【免费下载链接】feiq 基于qt实现的mac版飞秋&#xff0c;遵循飞秋协议(飞鸽扩展协议)&#xff0c;支持多项飞秋特有功能 项目地址: https://gitcode.com/gh_mirrors/fe/feiq 还在为Mac与Windows设备间的通…...

SenseVoice-Small ONNX模型效果惊艳展示:中英粤日韩五语种同步识别样例

SenseVoice-Small ONNX模型效果惊艳展示&#xff1a;中英粤日韩五语种同步识别样例 今天&#xff0c;我想带大家看一个让我眼前一亮的语音识别模型——SenseVoice-Small的ONNX版本。它最吸引我的地方&#xff0c;是能同时识别中文、英文、粤语、日语和韩语&#xff0c;而且速度…...

Nunchaku FLUX.1-dev 开发环境配置:Anaconda虚拟环境创建与管理指南

Nunchaku FLUX.1-dev 开发环境配置&#xff1a;Anaconda虚拟环境创建与管理指南 想玩转Nunchaku FLUX.1-dev这类前沿的AI模型&#xff0c;第一步也是最关键的一步&#xff0c;就是把它的“家”给搭好。这个“家”就是Python虚拟环境。你可能听过不少因为环境依赖冲突&#xff…...

OpenClaw低配部署:gemma-3-12b-it在4GB内存设备上的运行方案

OpenClaw低配部署&#xff1a;gemma-3-12b-it在4GB内存设备上的运行方案 1. 为什么要在低配设备上部署OpenClaw&#xff1f; 去年我入手了一台二手Mac mini&#xff08;8GB内存版&#xff09;&#xff0c;本想用它作为家庭媒体中心&#xff0c;后来突发奇想&#xff1a;能不能…...

OpenClaw配置备份方案:Qwen3.5-9B-AWQ-4bit迁移到新设备

OpenClaw配置备份方案&#xff1a;Qwen3.5-9B-AWQ-4bit迁移到新设备 1. 为什么需要完整的配置迁移方案 上周我的主力开发机突然硬盘故障&#xff0c;导致所有OpenClaw配置丢失。重新搭建环境时发现&#xff0c;单纯备份openclaw.json远远不够——飞书机器人授权失效、硬件指纹…...

零售AI开发者必看:Ostrakon-VL-8B终端从部署到任务执行完整指南

零售AI开发者必看&#xff1a;Ostrakon-VL-8B终端从部署到任务执行完整指南 1. 项目概览&#xff1a;像素特工终端 Ostrakon-VL-8B是一款专为零售与餐饮场景优化的多模态大模型&#xff0c;我们将其封装成了一个充满游戏趣味的Web交互终端。与传统工业级UI不同&#xff0c;这…...

学术利器爱毕业aibye推荐六款顶尖平台,智能改写与写作功能双管齐下,优化研究流程

工具名称 核心功能 特色优势 Aibiye 论文生成降AI率 全学科覆盖、仿写优化、自动图表生成 Aicheck AI检测文献综述辅助 精准查新、3分钟高效成文 GPT学术版 润色/翻译/代码解释 多模型协同、PDF深度解析 摆平论文 大纲生成降重改写 三步出稿、本硕博通用 QuillB…...

代码随想录算法第五十三天| KamaCoder110字符串迁移、KamaCoder105有向图的完全联通、KamaCoder106海岸线的计算

KamaCoder 110 字符串迁移 题目链接&#xff1a;110.字符串迁移 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a; 字符串迁移 思路与感想&#xff1a;直接卡在读懂题意这一关了&#xff0c;我还纳闷输出结果怎么跟自己理解的差那么多。卡哥讲完之后才明白题目的推导过程…...

量子密码 vs 后量子密码:企业安全负责人必须知道的5个关键差异

量子密码与后量子密码&#xff1a;企业安全决策者的技术选型指南 当金融巨头J银行遭遇一次未遂的数据窃取时&#xff0c;安全团队发现攻击者已开始收集加密流量——这是典型的"现在窃取&#xff0c;未来解密"战术。企业安全负责人面临的现实困境是&#xff1a;面对量…...

# 系列文10:突破Activiti限制!政务工作流任意流转,支持跳退

系列文10&#xff1a;突破Activiti限制&#xff01;政务工作流任意流转&#xff0c;支持跳退回退 非科班野生程序员&#xff0c;深耕政务信息化20年&#xff0c;这套自研Java Web框架支撑过省级新农保、全国首例跨省医保结算等核心民生系统&#xff0c;18年稳定运行至今。本系…...