16位汇编 写入显存B800:0000 输出字符串

8086CPU汇编:显示字符串 阅读详情

B8000H-BFFFFH的内存空间是显存地址, 32K大小, 向这个地址写入数据就可以打印到屏幕上了。

assume cs:code, ds:data

data segment
	db 'Hello,test'
data ends

code segment
	
	start:
	
	mov ax,0b800h
	mov ds,ax	;显存的数据段
	
	mov si,data  
	mov es,si	;字符串的数据段
	
	mov si,0	
	mov bx,0A0h	;160表示第二行
	mov cx,0Ah	;字符串长度10位
	
	s:
	  
	  mov al,es:[si]  
	  inc si
	  mov ah, 0ch    ;红底黑字
	  mov ds:[bx],ax
	  add bx,2

	loop s	
	
	mov ax,4c00h
	int 21h
code ends

end start

end




最优化方法 25:PDHG 前面的章节要么从原始问题出发,要么从对偶问题出发,通过求解近似点或者一个子优化问题进行迭代,而且推导过程中我们发现根据问题的参数特征,比如矩阵 AAA 是瘦高型的还是矮胖型的,采用对偶和原始问题的复杂度会不一样,可以选择一个更简单的。而这一节,我们将要从原始对偶问题出发来优化,什么是原始对偶问题呢?就是原始优化变量和对偶优化变量(原始函数和共轭函数)混合在一块,看下面的原理就知道了。 1. 原始对偶问题 现在考虑原始优化问题,其中 f,gf,gf,g 为闭凸函数 min⁡f(x)+g(Ax) \min \q 阅读详情

相关推荐

STM32F030F4P6实战:LL库+DMA驱动WS2812全流程(附避坑指南)

本文详细介绍了如何使用STM32F030F4P6的LL库和DMA驱动WS2812 LED灯带的全流程,包括硬件选型、CubeMX配置、LL库与DMA关键实现、数据格式转换及调试技巧。特别提供了避坑指南,帮助开发者避免常见错误,提升开发效率。

weixin_29194693的博客 484

汇编语言-操作显存数据

B. 显存地址空间:A0000-BFFFF,128K,其中B8000H~BFFFFH共32K的空间是80列 * 25行彩色字符模式第 0页的显示缓冲区。02转为二进制就是:0000 0010,1代表G,也就是green,所以显示为黑底绿色。RGB(111)为白色,RGB(000)为黑色。C. 各类ROM地址空间:C0000-FFFFF,256K。A. 主存储器地址空间:00000-9FFFF,640K。解决:十六进制41就是字符A,占低位字节。G. 编程序,在屏幕的中间显示白底蓝字。

ysywon的博客 763

车企常用架构、通信设计、需求管理工具全汇总

车辆技术是个系统工程,比较大,需要多人协作。“协作”往往需要工具参与,才能保证协作过程的高效、有条不紊。 【文章系转载,出处见图片水印】 今天我们就来捋一捋汽车行业常用的架构、网络开发工具~ Preevision 大名鼎鼎的Preevision,来自大名鼎鼎的Vector。 个人觉得,它是Vector公司最牛逼、最神秘、最高高在上的产品,犹如空谷回响、千里传音,但是很少看到它真正落地。 它最引以为傲的,或许是在给客户做介绍的时候,说“我们甚至能够精确到每一根线束的长度”,但是反观.

MaveDiao的博客 3485

汇编直接在显存地址写字符显示

汇编器:nasm 虚拟机:bochs 操作系统:mac osx 将汇编代码写入磁盘的0柱面,0磁道,1扇区,开机启动后bios会自动加载这512字节到内存0x7c00处,然后跳到这开始执行。 在屏幕上显示字符,可以直接写到显存里,就直接在屏幕上显示出来了,显存地址从0x8000开始,每个字符占两个字节,一个字节存放字符,一个字节存放这个字节的显示属性。 具体可参考王爽汇编语言实验9。 ...

fxnfk 5031

【时空数据分析#06】实战:基于Python与ArcGIS的NDVI长期趋势制图与分级

本文详细介绍了基于Python与ArcGIS进行NDVI长期趋势制图与分级分析的完整工作流。通过整合MODIS卫星数据,利用ArcGIS进行空间处理与栅格转换,结合Python进行时序统计与趋势计算,最终生成直观的植被变化趋势分级图,为生态评估与环境监测提供可靠的空间分析工具。

lilh34434的博客 477

LilyGO T-Watch学习(一)环境搭建,编译下载

1、安装arduino IDE, 安装后按照说明添加lib IDE上选择“项目->加载库->添加.ZIP库”,选择C:\Users\用户名\Documents\Arduino\libraries\下的TTGO_TWatch_Library-master.zip; 查看是否添加成功: 项目->加载库,滑到最后可看见已添加的TTGO... 参考:https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library 2、安装esp32 ardui

hxl5955的博客 2906

汇编操作显存

【0】README 0.1)本文转自: http://www.cnblogs.com/youxin/archive/2012/05/21/2512329.html for relative source code , please visit https://github.com/pacosonTang/Orange-s-OS/blob/master/lib....

weixin_30512043的博客 429

用矿卡P104-100在PVE 8.0.4上跑Ollama:保姆级显卡直通与驱动安装避坑指南

本文详细介绍了如何在PVE 8.0.4环境下通过显卡直通技术,利用矿卡P104-100高效部署本地大模型Ollama的全流程。从硬件配置、BIOS设置到驱动安装和性能调优,提供了保姆级的避坑指南和实战解决方案,特别针对矿卡无显示输出的特殊性进行了优化。

weixin_33228769的博客 752

汇编语言练习_3_利用栈写显存

文章目录要求思路效果代码汇编码lst汇编对照码 要求 1、计算1+2+3…+100的结果 2、利用栈将表达式与计算结果输出到显存 思路 第一步:利用loop计算1~100的和,保存在dx中 第二步:将计算结果进行拆分,并拆分的数位与其字符属性保存在栈中 第三步:现将表达式字符串输出到显存,再从栈中取数据输出到显存 效果 代码 汇编码 start: jmp code0 data: db '1+2+3+...+100=';1byte ;累加计算 code0: mov cx,100 xor ax,

dc12499574的博客 544

清理异常值(MAD:绝对中位差)

清理异常数据: 中位数绝对偏差(MAD):用来描述单变量样本在定量数据中可变的一种标准 在统计学中,绝对中位差是刻画一元数据样本变化的一个鲁棒度量。由公式可以看出,其求解还算简单,给定一个数据样本集,首先求其中位数,然后求原始数据减去中位数的绝对值从而形成一个新的数据样本,再求新的数据样本的中位数即为绝对中位差。比如说有一个数据样本集X={2 3 8 7 9 6 4},这时候数据的中位数是6,原...

spider_man 1万+

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南

OpenClaw已经开源3个月有余,作为深耕AI Agent领域的博主,我亲身探索了各种基于OpenClaw的赚钱方法,也踩过坑、付出了时间与精力。现在,我将这些真金白银砸出来的实战经验,毫无保留地总结成这个专栏,分享给不想从零开始摸索的你。博主在优快云已有7万+粉丝和1100万+阅读量,但这却是我的第一个付费专栏。正因如此,我比任何人都更珍惜这个“第一次”。我会像一个手艺人打磨作品一样,死磕每一篇文章的质量,并持续根据订阅者的反馈优化内容。也许你的疑问就是当篇文章的优化点。

冯·诺依曼 2442

[Assembly]汇编编写简易键盘记录器

环境:Windows xp sp3工具:masmnotepad++首先列出本次编程程序要执行的步骤:(1)、读取键盘所输入的字符(2)、输出到屏幕上(3)、完善Esc、Backspace、空格、回车的输出首先解决(1)这里我们可以利用int 16h的中断功能读取字符缓存区的字符 mov ah,0 int 16h 执行完int 16h后 ah=扫描码 al=ASCII码例如我们输...

weixin_30411997的博客 177

基于本机知识库 + 豆包(火山引擎)+ MCP的落地方案

最小 MVP:本地知识库 + Doubao Embedding + 简单检索。工具化:把检索/写入/系统功能通过 MCP 封装。Agent 编排:RAG 流程 + 自检 + 引用输出。这样你就可以快速落地一个基于豆包 + 本机知识库的 MCP Agent。

lpfasd123的博客 1096

汇编语言练习_0_字符串显示

文章目录环境1、Bochs虚拟机2、VirtualBox工具1、notepad++2、nasm思路第一步:第二步:第三步:第四步:第五步:第六步:第七步:第八步:解析1、第二行中jmp code2、计算字符串长度3、ds为何为0x07c04、有关8086显存知识5、loop s解释6、结尾的字符填充效果1、virtualbox2、bochs代码汇编代码机器码 对照 汇编代码 环境 1、Bochs虚拟机 代码调试 2、VirtualBox BIOS运行 工具 1、notepad++ 编写代码 2、nasm 编

dc12499574的博客 1943

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[汇编语言] 带有颜色的字符串显示(hello world 级别程序)

代码 DATAS SEGMENT ;'0123456789abcdef' db 'linhongcun' ;要显示的字符串,10 DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MO...

IT小村 7621

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

字节 汇编_实验4 汇编应用编程和c语言程序反汇编分析 - GTOTHED

  tips:  这道编程练习需要考虑的两个关键问题:  (1)屏幕中间对应的显存位置的计算 —— 第×行第×列对应的显存地址单元  (2)字符串颜色属性的设置  上述两个问题,请参考教材188-189或第9章课件,内有:  80×25彩色字符模式显示缓冲区结构说明  字符属性字节的设置依据  字符串及其颜色属性信息,可以提前定义在数据段中。  要显示字符串,本质上,就是把字符及其颜色属性信息,复...

weixin_28990605的博客 289

大灰狼笔记四-汇编hello,world

大灰狼之四——第一个汇编hello,world 先来看一段C的hello,world实现 char msg[]="hello,world"; int main(int argc, char *argv) { printf("%s\n",msg); return 0; } 其中msg是全局变量,存放在数据段中,而printf是执行代码,存放在代码段中。 而汇编语言并不

r_drummer的专栏 850

从字符显示到数值转换:汇编语言show_str和dtoc子程序深度解析

本文深度解析汇编语言中show_str和dtoc两个核心子程序的设计与实现。show_str子程序负责将字符串写入显存以实现屏幕显示,涉及显存地址计算与字符属性设置;dtoc子程序则通过除10取余算法将数值转换为十进制字符串,并巧妙利用栈解决顺序问题。文章还探讨了避免除法溢出的divdw子程序,以及如何组合这些模块实现完整的数值显示功能,是理解底层硬件交互与问题分解思维的绝佳实践。

weixin_29185493的博客 296

汇编语言子程序实战:从显示字符串到解决除法溢出(附完整代码)

本文深入探讨汇编语言子程序设计与实现,涵盖从显示字符串到解决除法溢出等核心问题。通过详细解析寄存器保护、参数传递和栈平衡等关键技术,提供完整的代码示例和调试技巧,帮助开发者掌握高效的汇编编程方法。特别针对divdw指令的溢出问题,给出了数学解决方案和优化实现。

weixin_29175469的博客 254

8086汇编与C语言反汇编实验环境搭建与实战

汇编语言作为底层编程的核心技术,通过直接操作硬件寄存器实现高效控制。在x86架构中,8086汇编通过段寄存器与偏移地址的配合管理内存空间,其显存操作原理采用B800h段地址实现字符/属性双字节映射。现代开发中,反汇编技术常用于逆向工程与性能优化,通过GCC/Visual Studio等工具将C代码转换为汇编指令,揭示函数调用时的堆栈参数传递与寄存器返回值机制。本文以DOSBox+MASM环境为例,详解80×25彩色字符模式的显存编程实践,并对比分析C语言反汇编后的堆栈帧构建过程,为理解计算机系统底层工作原理

weixin_34033624的博客 427

x8086汇编在显存中显示字符串

题目:在屏幕中间显示绿色,绿底红色,白底蓝色的字符串‘welcome to masm!’ 80X25彩色字符模式显示缓冲区的结构:   在内存地址结构中,B8000H~BFFFFH共32KB的空间,为80x25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在 显示器上。   在80x25彩色模式下,显示器可以显示25行,每行80个字符,每个字符可以由256中属...

weixin_30848775的博客 400

汇编语言实验一-《汇编语言-王爽老师》

汇编语言第三版学习笔记-实验一

m0_47470899的博客 1689

16位Boot直接操作显存显示白色字符和红色字符

创造一个大小为30M模式为flat的硬盘,bximage不是Linux原生程序,需要安装bochs才能使用。此文章为4月Day 8学习笔记,内容来源于极客时间《操作系统实战 45 讲》。将mbrGraphicsCard.bin写入到boot.img文件里边。生成mbrGraphicsCard.bin文件。”之后按回车键开始模拟运行。

qq_42108074的博客 347

汇编语言实验九完整代码

汇编语言实验九完整代码 建议先自己思考问题的答案,不懂则返回看书 显示绿色、红底绿色、白底蓝色的welcome to masm! 解析: 在显存中,一个dw 表示一个字符,dw的高字节表示颜色,低字节表示字符的ASCII。 eg. AH=0000 0010 AL= ‘a’,则在屏幕上显示为绿色的’a’ ,因为AH=02h,表示颜色是绿色,所以只是对颜色数据进行改动。 assume cs:code...

shaco_的博客 4108

汇编语言程序设计-6-中断及其应用

移位指令-shl/shr/sal/sar/rol/ror/rcl/rcr。显存缓冲区。标号(直接定址表)。中断处理-int 10h/21h、sti/cli。端口读写-in/out。操作外设:CMOS芯片70h/71h端口;键盘60h端口、09h/16h中断;磁盘读写13h中断;扬声器61h/42h端口。

虎慕的博客 1908

汇编语言练习_1_数字分解_显示

文章目录环境1、Bochs虚拟机2、VirtualBox工具1、notepad++2、nasm思路第一步:第二步:第三步:第四步:第五步:第六步:第七步:解析1、第二行中jmp code2、计算字符串长度3、ds为何为0x07c05、loop s解释6、第111行加上0x30的原因7、除法指令解析8、数字分解原理9、为何屏幕显示的数字是逆序的10、结尾的字符填充效果1、要求2、virtualbox3、bochs代码1、汇编代码2、机器码 对照 汇编代码 环境 1、Bochs虚拟机 代码调试 2、Virtua

dc12499574的博客 1254

《汇编语言》- 读书笔记 - 第10章-实验 10 编写子程序

本文是《汇编语言》实验10的笔记,介绍了三个子程序的编写。第一个子程序`show_str`用于在指定位置显示字符串,支持行号、列号、内容和颜色参数。第二个子程序`divdw`解决了除法溢出问题,实现了不会产生溢出的除法运算。第三个子程序`dtoc`将二进制数据转换为十进制字符串。实验强调了寄存器保存和显存地址转换的重要性。

灵台方寸山斜月三星洞 1172
上一篇: 16位汇编 使用word ptr和byte ptr的寻址方式
下一篇: MacOS开启系统自带的NTFS读写功能
sysprogram
博客等级 码龄17年 298粉丝 442原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值