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

题目:在屏幕中间显示绿色,绿底红色,白底蓝色的字符串‘welcome to masm!’

80X25彩色字符模式显示缓冲区的结构:

  在内存地址结构中,B8000H~BFFFFH共32KB的空间,为80x25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在

显示器上。

  在80x25彩色模式下,显示器可以显示25行,每行80个字符,每个字符可以由256中属性。

  80x25模式下,一屏的内容在显示缓冲区共4000个字符。

===========================================================

绿色:    0000 0010B -> 02H

绿底红色:  0010 0100B -> 24H

白底蓝色:  0111 0001B -> 71H

============================================================

代码:

 1 assume cs:code,ss:stack,ds:data
 2
 3 data segment
 4         db ‘welcome to masm!‘
 5         db 00000010B
 6         db 00100100B
 7         db 01110001B
 8 data ends
 9
10 stack segment
11         db 128 dup (0)
12 stack ends
13
14 code segment
15
16  start: mov ax,stack
17         mov ss,ax
18         mov sp,128
19
20         mov ax,data
21         mov ds,ax
22
23         jmp show_m
24
25    xh:  jmp xh
26
27   next: mov ax,4c00h
28         int 21h
29 ;-------------------------------------
30 show_m:
31
32         mov bx,0b800h
33         mov es,bx
34
35         mov bx,16             ; ds:[bx]  color
36         mov di,12*160+60      ; es:[di]  zimu + color
37
38         mov cx,3
39
40  s_c:   push cx
41         push di
42
43         mov si,0              ; ds:[si] zimu
44         mov cx,16
45
46
47  s_w:   mov dl,ds:[si]
48         mov dh,ds:[bx]
49         mov es:[di],dx
50         inc si
51         add di,2
52         loop s_w
53
54         pop di
55         pop cx
56         inc bx
57         add di,160
58         loop s_c
59
60         jmp next
61
62
63
64 code ends
65
66 end start
时间: 2024-10-07 06:32:29

x8086汇编在显存中显示字符串的相关文章

汇编|使用10h中断来显示字符串

特么这个问题困扰了我好久,毕竟是个OS newbie,还没有汇编的基础. 在前天的加载loader的实验中,老师要求显示字符串,但是给的代码只是显示一个字符. 愚蠢的我实在没办法,最后为了按期完成实验,只能一个个字符地输出,呀真是羞耻. 好了,趁着清明假期,花了几个小时终于弄懂了. 下面进入正题! 前戏是先对boot.asm和loader.asm编译: nasm -o boot.bin boot.asm nasm -o loader.bin loader.asm 然后把boot.bin写入软盘a

80*25彩色字模式的显示显存示例

1 ; 80*25彩色字模式的显示显存在内存中的地址为B8000h~BFFFH,共32k.向这个地址写入的内容立即显示在 屏幕上边. 2 3 ;在80*25彩色字模式 下共可以显示25行,每行80字符,每个字符在显存中占两个字节,第一个字节是字符的ASCII码.第二字节是字符的属性,(80字符占160个字节) 4 5 ;DispReturn模拟一个回车的显示,(让下一个要显示的字符在下一行的开头处显示),其中edi始终指向要显示的下一个字符的位置. 6 ; -------------------

实验10 编写子程序 1.显示字符串

assume cs:code,ds:data data segment db 'Welcome to masm!',0 data ends code segment start: mov dh,8 ;dh表示行号(范围:1-25) mov dl,3 ;dl表示列号(范围:1-80)[注:每超过80等于行号自动加1] mov cl,2 ;cl中存放颜色属性(0cah为红底高亮闪烁绿色属性) mov ax,data mov ds,ax mov si,0 call show_str mov ax,4c

关于显卡的显存

显存,也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据.如同计算机的内存一样,显存是用来存储要处理的图形信息的部件. 作用 显存 如同计算机的内存一样,显存是用来存储要处理的图形信息的部件.我们在显示屏上看到的画面是由一个个的像素点构成的,而每个像素点都以4至32甚至64位的数据来控制它的亮度和色彩,这些数据必须通过显存来保存,再交由显示芯片和CPU调配,最后把运算结果转化为图形输出到显示器上.显存和主板内存一样,执行存贮的功能,但它存贮的对像是显卡输出到显示器上的每个像素

Ubuntu-Tensorflow 程序结束掉GPU显存没有释放的问题

笔者在ubuntu上跑Tensorflow的程序的时候,中途使用了Win+C键结束了程序的进行,但是GPU的显存却显示没有释放,一直处于被占用状态. 使用命令 nvidia-smi 显示如下 两个GPU程序都在执行中,实际上GPU:0已经被笔者停止了,但是GPU没有释放,进程还在继续,所以只有采用暴力手段了,将进程手动关闭掉,进程编号如图中红线部分,由于笔者在两个GPU跑的程序一样,很难从程序名称上找到自己,却可以从GPU:num上找到自己的PID. 关闭命令如下: sudo kill -9 P

提取手机游戏资源 特效 显存分析工具 无视任何加密

step.1 准备工具 1.adb连接工具(我用的cofface adb ) [cofface]adb基于最新安卓源码编译修改,兼容其它助手,增加参数,支持识别所有机型 工具详情:http://blog.cofface.com/archives/569.html 下载地址:http://pan.baidu.com/s/1qX3XQDA 2.Adreno Profiler 基于硬件层面查看内存贴图 所有有些团队为了避免别人提取所以对资源进行了加密,最近又发现了一个神器基于硬件层面查看内存贴图,这样

D3D中的AGP内存、系统内存、显存的理解

转自 http://www.cnblogs.com/lancidie/archive/2011/05/20/2052094.html 学习D3D,应该对这三个内存理解,网上收集了一下相关资料,收藏下来. 三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡内存都很小,那时还是在显存是16M,32M为主流的时候,如果你运行一个需要很多纹理的3D程序,那么显存一会就不够用了,那该咋办呢?只好问系统内存借点

STM32 液晶屏 显示字符串 中遇到的一个问题

用STM32控制液晶屏显示电流.电压参数. 我希望的结果是这样的: 可是,实际写出来的效果是这样的. 可以看出,电流参数那一行后面多出了几个字符"Volta",刚好是要下一行需要显示内容的前面一部分. 试着把电流参数值得位数改短一些,比如把前面的20.54改为2.54.显示出来就是正常的.由此想到这个问题的产生可能和要显示的字符串的长度有关.所以就把跟电流显示的相关的代码都看了看,从定义到调用液晶模块的API. char Current_display[15];// 定义一个与电流参数

tensorflow中使用指定的GPU及GPU显存

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本文目录 1 终端执行程序时设置使用的GPU 2 python代码中设置使用的GPU 3 设置tensorflow使用的显存大小 3.1 定量设置显存 3.2 按需设置显存 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6591923.html 参考网址: http://stackoverflo