x86直接写屏显示字符串

2023-11-14

直接向显存地址(0xb800:xxxx)写入数据,屏幕显示:80列,25行,一个字符显存2byte

/*
 * file showstr.s
*/ 
.code16

.globl  _start, begtext, begdata, begbss, endtext, enddata, endbss
.text
begtext:
.data
begdata:
.bss
begbss:
.text


_start:
	movw $0,%dx
	movw $24,%cx
	movw $0x0700,%si
	movw $msg,%bp
	call showstr
end:jmp end

showstr:
	push %ds
	movw $0xb800,%ax
	movw %ax,%ds
show:
	movb $13,%ah
	movb (%bp),%al
	cmp %ah,%al
	je 1f
	movb $10,%ah
	movb (%bp),%al
	cmp %ah,%al
	je 1f
	jmp 2f
1:	movw %dx,%ax
	movw $160,%bx
	div %bl
	sub %ah,%bl
	add %bx,%dx
	sub $2,%dx
	jmp 3f
2:	movw %si,%ax
	movb (%bp),%al
	movw %dx,%bx
	movw %ax,(%bx)		#set ds:bx=ax (0xb800:bx=ax)
3:	dec %cx
	inc %bp
	add $2,%dx
	movw $0,%ax
	cmp %cx,%ax
	jne show
	pop %ds
	ret

msg:
	.byte 13,10
	.ascii "Loading system ..."
	.byte 13,10,13,10

.org 510
.word 0xAA55

.text
endtext:
.data
enddata:
.bss
endbss:

编译

as -o boot.o showstr.s
ld -Ttext 0x07c00 --oformat binary -s -o boot.bin boot.o
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

x86直接写屏显示字符串 的相关文章

  • Spring Boot深入理解+核心特性讲解(超强源码版)需要一定的基础观看噢

    文章目录 开篇spring boot的诞生spring boot核心特性web服务器 WebServer 64 ConditionalOnXXX工厂加载机制配置加载机制spring boot Actuator 开篇 这篇博文主要总结我自己学
  • Spring Boot集成Spring Security

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架 它提供了一组可以在Spring应用上下文中配置的Bean xff0c 充分利用了Spring IoC xff0c DI xf
  • Spring boot 引入Spring Security后iframe或者frame所引用的页无法显示的问题

    最近在调整框架 xff0c 决定使用Spring Boot来简化框架 xff0c 引入Spring Security主要目的是做用户登录认证 xff0c 附带得到Spring Security各种特性 xff0c 包括主题中的问题 由于原项
  • Spring boot + Spring Security + Thymeleaf 认证失败返回错误信息

    Spring boot 43 Spring Security 43 Thymeleaf 认证失败返回错误信息 Spring boot以其众多友谊的特性 xff0c 如零配置 微服务等 xff0c 吸引了很多的粉丝 而其与Spring Sec
  • Spring Boot Starter的面试题

    Spring Boot Starter的面试题 1 常见的starter会包几个方面的内容 xff1f 分别是什么 xff1f span class hljs comment 常见的starter会包括下面四个方面的内容 span span
  • Boot Loader

    在嵌入式操作系统中 xff0c BootLoader是在操作系统内核运行之前运行 可以初始化硬件设备 建立内存空间映射图 xff0c 从而将系统的软硬件环境带到一个合适状态 xff0c 以便为最终调用操作系统内核准备好正确的环境 在嵌入式系
  • Spring Boot Kafka概览、配置及优雅地实现发布订阅

    本文属于原创 xff0c 转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net 文章目录 1 前言2 Spring Kafka功能概览2 1 自动创建主题2 2 发送消
  • Linux boot API

    Linux boot API 代码主控头文件U BOOT CMD 终端命令sf nand xff08 nor nand flash xff09 具体用法使用范例 setenv 命令 代码 主控头文件 boot主逻辑在此 xff0c 以Ing
  • knife4j + spring-boot-starter-actuator 无法启动,Filed to start bean ‘documentationPluginsBootstrapper‘;

    问题描述 xff1a spring boot starter 2 6 7 43 spring cloud starter security 43 knife4j 启动报错 xff1a span class token class name
  • IAP 程序 跳转问题

    问题 STM32F407 未加下面 清除所有中断标志位 IAP无法跳转到APP 原因 开了定时器 配置了中断 在执行时为清除中断 导致程序无法跳转 void flash load application uint32 t applicati
  • 如何分析AIX启动过程1

    复杂度3 5 机密度4 5 最后更新2021 05 14 AIX提供了两个帮助分析启动的工具或者模式 kernel debug boot verbose mode 前者适合单独分析某个特定的功能 模块 而后者则能帮助你全面地过一遍AIX启动
  • 如何自动启动Solr?

    此刻我必须去 usr java apache solr 1 4 0 example然后执行以下操作 java jar start jar 如何让它在启动时自动启动 我在共享 Linux 服务器上 当您使用共享 Linux 机器时 您可能必须
  • 判断手机是否重启过

    我正在尝试检测自上次设置首选项值以来 Android 设备是否已重新启动 理想情况下 我想在没有android permission RECEIVE BOOT COMPLETED允许 我考虑的一种方法是存储另一个包含某种会话 ID 的首选项
  • 使通知图标出现在启动/耳机插件上

    我想让它在插入耳机时出现一个通知图标 我已经做到了 当手机打开时 它会启动 MainActivity 类 该类在 OnCreate 方法中包含通知图标的代码 因此它会自动启动 问题是它启动了整个活动和应用程序 这是我不想要的 我只是想让图标
  • 为什么根文件系统被加载到ramdisk中?

    我正在研究Linux的启动过程 我遇到过这样一句话 RAM 比软盘快几个数量级 因此 ramdisk 的系统运行速度很快 无论如何 内核都会将根文件系统加载到 RAM 中来执行它 所以我的问题是 如果内核将根文件系统加载到 RAM 中 为什
  • 编写我自己的 init 可执行文件

    我想创建自己的 init 并为下雪的周末带来一些 Linux 乐趣 我知道 内核使用 rootfs 启动 并在加载驱动程序和安装磁盘后将流程提供给 sbin init 我下载了ubuntu云镜像并尝试使用kvm直接启动内核 如下所示 kvm
  • BOOT_COMPLETED 从未收到

    每个设备都会发送 BOOT COMPLETED 吗 我想在启动完成时启动一个活动 我在清单中添加了以下内容
  • 使用 rc.local 运行脚本:脚本有效,但在启动时无效

    我有一个需要在启动时启动的 node js 脚本and在 www data 用户下运行 在开发过程中 我总是以以下方式开始脚本 su www data c node var www php jobs manager js 我确切地看到发生了
  • Android - 如何在启动后启动 /sdcard 上的应用程序

    有没有一种方法可以在启动后自动启动Android应用程序 如果它位于Android应用程序上 sdcard 好吧 大概是通过BroadcastReceiver 但哪种行动是正确的呢 ACTION BOOT COMPLETED does no
  • 获取在 mac 中启动时运行的 python 脚本

    如何让 python 脚本在每次计算机启动时运行 如何在启动时运行 shell 脚本 OSX http www osxfaq com Tutorials LearningCenter HowTo Startup index ws 在该脚本中

随机推荐

  • 使用Git-bash将本地项目传到Github

    近几天复习了JavaWeb的一些基础 做了一个简单的管理系统 想放在Github上留个底 但只会用IDEA直接pull 就想着用本地的Gitbash直接pull 花了些时间能好了 现在总结下流程 1 首先在本地目录创建一个文件夹 作为版本库
  • pinia核心模块----store

    目录 一 概念 二 定义store 1 首先store目录下创建user ts文件 主要用来存放与user相关的store 2 页面中使用 一 概念 store简单来说就是数据仓库的意思 我们数据都放在store里面 当然你也可以把它理解为
  • SQL中Group By的使用

    SQL中Group By的使用 1 概述 2 原始表 3 简单Group By 4 Group By 和 Order By 5 Group By中Select指定的字段限制 6 Group By All 7 Group By与聚合函数 8
  • 操作系统(02)- 四个基本特征

    文章目录 一 操作系统的特征 1 并发 2 共享 3 虚拟 4 异步 一 操作系统的特征 操作系统的特征可以分为四类 并发 共享 虚拟 异步 其中并发和共享是最基本的特征 二者互为存在条件 后面会给出详细解释 下面详细的介绍这四种特征 1
  • 中国智能建筑行业运行状况与十四五应用前景调研报告2022版

    中国智能建筑行业运行状况与十四五应用前景调研报告2022版 修订日期 2021年12月 搜索鸿晟信合研究院查看官网更多内容 第一章 智能建筑发展概述 1 1 智能建筑的相关概念 1 1 1 智能建筑的定义 1 1 2 智能建筑的层次划分 1
  • Ubuntu安装redis5.0.0

    一 下载 sudo wget http download redis io releases redis 5 0 0 tar gz 如果慢 可以传上去 二 解压编译安装 解压后 切换目录 cd app redis 5 0 0 编译 make
  • 【C++】对数组指针的理解,例如 int (*p)[3]

    目录 简介 思考 理解 结语 简介 Hello 非常感谢您阅读海轰的文章 倘若文中有错误的地方 欢迎您指出 昵称 海轰 标签 程序猿 C 选手 学生 简介 因C语言结识编程 随后转入计算机专业 获得过国家奖学金 有幸在竞赛中拿过一些国奖 省
  • 【MYSQL】mysql1130错误与安装重置密码

    1 连接服务器 mysql u root p 2 看当前所有数据库 show databases 3 进入mysql数据库 use mysql 4 查看mysql数据库中所有的表 show tables 5 查看user表中的数据 sele
  • freeswitch编译过程以及添加odbc连接mysql

    freeswitch 编译 参考官网wiki bootstrap sh j configure prefix home make make j install make j cd sounds install make j cd moh i
  • Git的Patch功能

    本文整理编辑自 http www cnblogs com y041039 articles 2411600 html http yuxu9710108 blog 163 com blog static 2375153420101114488
  • 可以免费使用的ChatGPT-4,微软开放Bing Chat功能,供用户体验

    微软Bing取消了 Bing Chat的等待名单 现在用户可以通过使用 Edge 浏览器并使用微软帐户登录就可以使用Bing Chat了 入口 打开Bing首页 用户点击 聊天 Chat 即可进入Bing Chat界面 目前Bing Cha
  • Open3D(C++) 模型锐化

    目录 一 模型锐化 1 概述 2 主要函数 二 代码实现 三 结果展示 1 原始模型 2 锐化处理 一 模型锐化 1 概述 Open3D中的实现一种模型锐化处理的算法 该算法的输出值 v o v o v
  • uni.switchTab()跳转不刷新页面问题

    uni switchTab 跳转不刷新页面问题 大家应该都遇到过 调转到 tabBar 里面的页面时 只能使用 uni switchTab 或者是 uni navigator 跳转 使用 uni reLauch 或者是 uni redire
  • 【BLE】-CC2541 OSAL操作系统抽象层应用程序接口API介绍

    参考源source 简介 目的 本文档的目的是定义OS抽象层 OSAL 的API 这个API适用于TI协议栈软件组的产品 例如Z 堆栈 RemoTI 和BLE 适用范围 该文件列举了由OSAL提供的所有函数调用 详细地说明了所有函数调用 方
  • C++11之继承构造函数(using 声明)

    系列文章 C 11之正则表达式 regex match regex search regex replace C 11之线程库 Thread Mutex atomic lock guard 同步 C 11之智能指针 unique ptr s
  • SQL,NowSQL及NewSQL浅析

    关系型数据库 NOSQL NEWSQL浅析 1 关系型数据库 关系数据库 是建立在关系模型基础上的数据库 借助于集合代数等数学概念和方法来处理数据库中的数据 简单来说 关系模型指的就是二维表格模型 而一个关系型数据库就是由二维表及其之间的联
  • 华为OD机试 - 在字符串中找出连续最长的数字串(含“+-”号)(Java)

    题目描述 请在一个字符串中找出连续最长的数字串 并返回这个数字串 如果存在长度相同的连续数字串 返回最后一个 如果没有符合条件的字符串 返回空字符串 注意 数字串可以由数字 0 9 小数点 正负号 组成 长度包括组成数字串的所有符号 仅能出
  • 臭名昭著的MOS管米勒效应

    概述 MOS管的米勒效应会在高频开关电路中 延长开关频率 增加功耗 降低系统稳定性 可谓是臭名昭著 各大厂商都在不遗余力的减少米勒电容 分析 如下是一个NMOS的开关电路 阶跃信号VG1设置DC电平2V 方波 振幅2V 频率50Hz T2的
  • 求大神们指教

    都已经定义了 为什么出现如下错误 求大神们指教 1 gt main obj error LNK2019 无法解析的外部符号 public char thiscall LinkStack
  • x86直接写屏显示字符串

    直接向显存地址 0xb800 xxxx 写入数据 屏幕显示 80列 25行 一个字符显存2byte file showstr s code16 globl start begtext begdata begbss endtext endda