寒假汇编语言作业(6)

程序设计项目六

 

在屏幕中间显示:“中华”两个字。参看demo0.png示例。

提示:

通过字模提取工具,可以提取字的显示信息。

分析:

跟lcd12864自定义图形差不多吧

直接用字模提取软件

参考代码:

  1 assume cs:code
  2 data segment
  3 ; -- zhong --
  4     db       00h, 1Ch, 00h, 00h, 1Ch, 00h, 00h, 1Ch, 00h
  5     db     00h, 1Ch, 00h, 00h, 1Ch, 00h, 1Fh,0FFh,0FCh
  6     db     1Fh,0FFh,0FCh, 1Fh,0FFh,0FCh, 1Ch, 1Ch, 1Ch
  7     db     1Ch, 1Ch, 1Ch, 1Ch, 1Ch, 1Ch, 1Ch, 1Ch, 1Ch
  8     db     1Ch, 1Ch, 1Ch, 1Ch, 1Ch, 1Ch, 1Fh,0FFh,0FCh
  9     db     1Fh,0FFh,0FCh, 1Fh,0FFh,0FCh, 1Ch, 1Ch, 1Ch
 10     db     00h, 1Ch, 00h, 00h, 1Ch, 00h, 00h, 1Ch, 00h
 11     db     00h, 1Ch, 00h, 00h, 1Ch, 00h, 00h, 1Ch, 00h
 12
 13 ; -- hua --
 14     db       03h, 0Eh, 00h, 03h, 8Eh, 10h, 07h, 0Eh, 38h
 15     db     0Eh, 0Eh,0F8h, 0Eh, 0Fh,0F0h, 1Eh, 0Fh,0C0h
 16     db     3Eh, 1Fh, 00h, 7Eh,0FEh, 00h, 6Eh,0FEh, 00h
 17     db     2Eh,0CEh, 1Ch, 0Eh, 0Fh,0FCh, 0Eh, 0Fh,0FCh
 18     db     0Eh, 07h,0F8h, 0Eh, 38h, 00h, 00h, 38h, 00h
 19     db     00h, 38h, 00h, 7Fh,0FFh,0FEh, 7Fh,0FFh,0FEh
 20     db     00h, 38h, 00h, 00h, 38h, 00h, 00h, 38h, 00h
 21         db       00h, 38h, 00h, 00h, 38h, 00h, 00h, 00h, 00h
 22 data ends
 23
 24 stack segment
 25         dw 16 dup (0)
 26 stack ends
 27
 28 code segment
 29 start:
 30
 31         mov ax,0b800h
 32         mov es,ax
 33         mov ax,data
 34         mov ds,ax
 35         mov ax,stack
 36         mov ss,ax
 37         mov sp,20h
 38         mov si,0
 39         call clear_scr
 40         mov bh,100b
 41         mov bl,03h
 42         mov ah,0
 43         mov dh,0       ;三个一循环
 44         mov di,16
 45         jmp get_bmp
 46
 47     get_bmp:
 48         mov al,ds:[si]
 49         inc si
 50         inc dh
 51         jmp do_16to2
 52     doom:
 53         mov cx,8
 54      ss1:
 55         pop ax
 56         cmp ax,0
 57         je next
 58         mov es:[di],bx
 59       next:
 60         add di,2
 61         loop ss1
 62
 63         cmp si,72   ;判断是否输出完中
 64         jne nn
 65         mov di,136
 66     nn:
 67         cmp si,144  ;同上,判断是否输出完
 68         je over
 69         cmp dh,3
 70         jne get_bmp
 71         mov dh,0
 72         add di,112
 73         jmp get_bmp
 74
 75     over:
 76     mov ax,4c00h
 77     int 21h
 78
 79     do_16to2:              ;16进制转换
 80         push cx
 81         mov cx,8
 82      sd0:
 83         mov dl,2
 84         div dl
 85         mov dl,al
 86         mov al,0
 87         push ax
 88         mov al,dl
 89         loop sd0
 90         jmp doom
 91
 92     clear_scr:
 93         push cx
 94         push bp
 95         push di
 96         mov bp,0
 97         mov cx,16h
 98      cs1:
 99         mov di,0
100         push cx
101         mov cx,50h
102      cs2:
103         mov word ptr es:[di+bp],0
104         add di,2
105         loop cs2
106
107         add bp,0a0h
108         pop cx
109         loop cs1
110         pop di
111         pop bp
112         pop cx
113         ret
114
115 code ends
116 end start

hj6.asm

因为字模不同:

时间: 2024-10-15 17:06:51

寒假汇编语言作业(6)的相关文章

寒假汇编语言作业(4)

程序设计项目四 编程计算x(x>2)的y(y>2)次方.使用add指令实现. 另,若学到第10章,使用两种方式实现: (1)只使用add指令实现: (2)只使用mul指令实现: 并将计算式显示在屏幕中央. 例如: 计算4的3次方.在屏幕中央显示格式如下: 4 ^ 3 ----- 64 注意:结果不能超过16位寄存器可存储的最大值. 参考代码:

寒假汇编语言作业(12)

程序设计项目十二 编写字符雨程序.参看demo6.gif示例. 提示: (1)每列是一个单独的单元,在数据段中定义的数据要保证各列要显示的字符和开始显示的时机不一样. (2)每一滴雨完全移出屏幕后,该雨滴所在列生成一个新的雨滴. 分析: 题目的提示感觉不怎么明了,故就照着图和别人的代码写的代码. 参考代码: 效果感觉不咋地 1 assume cs:code 2 data segment 3 db 0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,

寒假汇编语言作业(9-10)

程序设计项目九 将ASCII码按顺序在屏幕上竖列显示.参看demo3.gif示例. 要求: (1)逐个显示字符,相邻的两个字符之间显示要有时间间隔. (2)字符颜色为绿色. (3)每列显示20个字符,列间距为5个字符.显示完128个ASCII码,共需7列. 参考代码: 1 assume cs:code 2 3 stack segment 4 dw 16 dup (0) 5 stack ends 6 7 code segment 8 start: 9 mov ax,0b800h 10 mov es

寒假汇编语言作业(5)

程序设计项目五 定义一个数据段如下: data segment db '[email protected]#O*&^[email protected]$% %$T1O m33E44E55t y77O88u!()' db '?' data ends 注意:第一行字符串为待处理的数据,'?'为字符串结束符号. 设计程序完成如下操作: (1)去掉除字母.空格.'!'之外的字符: (2) 通过内存间的数据交换,将数据段中的字符串修改为'Hello!Nice to meet you!': (3)在屏幕正中

汇编语言作业(六)

班级:  计算机14-1 姓名: 许恺   学号: 2014011329 日期: 2016.4.24     一.编写程序 1.从键盘输入一个长度不超过50的字符串,然后将该字符串原样输出. 要求:用A号功能调用输入,用9号功能调用输出. 提示:用A号功能调用输入后,要找到串中回车所在位置,并将它替换成$. (1)程序清单: data segment str db 50,50 dup(?) data ends code segment assume cs:code,ds:data main pr

寒假预备作业01

1.对大一上学期进行总结(课内+课外).本学期存在的问题及反思. 本学期的收获:这个学期过去的非常快,一眨眼也就结束了.现在需要对过去的一学期进行总结,内心思绪万千.感触颇多.在课内,发现现在上课没有高中一样那么认真了,时常打瞌睡,精神也很难集中,使得自己总是在课外自己看.自己慢慢的琢磨.但效果很显然没有当时听老师讲的效果好,也最终导致了我在期中高数39分.在课外,自己没有太多参加课外的活动,所以没有与同学有太多的交流,导致自己也没有得到有效的锻炼.分析以上问题,首先上课不认真可以是说自己的内心

寒假中期考核个人总结

1.写出自己寒假前3周的具体技术学习收获,所花时间及完成代码量.如在某些技术上所学习的哪些知识点,所花费的总小时,代码总行数. 花费20小时在pandas库学习,写技术博客,完成400行代码,涉及较多概率统计学知识还需重温和学习. 20小时在阅读软测教研论文大约5篇,及时处理院系寒假通知各项事宜,天天汇报个人健康状况给学院.去包钢医院体检,小毛病不少,还需继续养生,关注自身健康.年底业绩最终出来,比18年少一半,比预期还低,要继续努力工作,完成各项业绩考核.苦日子只是在延续,做好在学校多干活工钱

洛谷 P2717 寒假作业

题目背景 zzs和zzy正在被寒假作业折磨,然而他们有答案可以抄啊. 题目描述 他们共有n项寒假作业.zzy给每项寒假作业都定义了一个疲劳值Ai,表示抄这个作业所要花的精力.zzs现在想要知道,有多少组连续的寒假作业的疲劳值的平均值不小于k? 简单地说,给定n个正整数A1,A2,A3,...,An,求出有多少个连续的子序列的平均值不小于k. 输入输出格式 输入格式: 第一行两个正整数,n和k. 第二行到第n+1行,每行一个正整数Ai. 输出格式: 一个非负整数. 输入输出样例 输入样例#1: 3

2016蓝桥杯省赛C/C++A组第六题 寒假作业

题意:现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ 每个方块代表1~13中的某一个数字,但不能重复. 比如: 6 + 7 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 以及: 7 + 6 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 就算两种解法.(加法,乘法交换律后算不同的方案) 你一共找到了多少种方案? 分析:回溯即可,但是如果等到cur==12