# 汇编程序设计项目
## 程序设计项目1
```assembly
data segment
dw ?
data ends
end
```
要求:只在定义的数据段‘?’中加入相关的内容,使得上面的程序可以在屏幕中间显示一个绿色的字符‘A’。
## 程序设计项目2
对字符串进行加密和解密。
算法设计:原字符串放在OriginalStr段,加密的字符串放在EncryStr段,解密的字符串放在DecryStr段。
加密方法:取OriginalStr段的每个字符的ASCII值与该字符后面的字符的ASCII值之和的一半。字符串的最后一个字符的加密方法为取该字符的ASCII值与20H之和的一半。(加密过程中的余数需要进行存储)
解密方法:根据加密方法自己设计解密方法,并实现。
实现要求:将OriginalStr段的数据按照加密方法进行加密,将加密后的数据放在EncryStr段;将EncryStr段的数据按照解密方法进行解密,将解密后的数据放在DecryStr段。然后把原字符串、加密之后的字符串以及解密之后的字符串分别以白底绿字、白底红字、白底蓝字方式显示到屏幕中间。
![demo2](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo2.png)
密文和明文的数据段定义如下:
```assembly
OriginalStr segment
db 'Hello world!'
OriginalStr ends
EncryStr segment
db 2*12 dup (' ')
EncryStr ends
DecryStr segment
db 12 dup (' ')
DecryStr ends
```
## 程序设计项目3
加、减、除三则运算。
要求:
1. 读取字符串的内容,判断第四个字符是‘+’、‘-’或‘/’,然后按照相应的符号进行运算,并把运算结果转换为字符串存放在等号后面,最后把算式显示到屏幕中间,白底蓝字。
2. 注意数字字符的ASCII与数字的对应关系,数字的数值加30H为这个数字的字符所对应的ASCII码。
3. 数据段定义如下:
```assembly
Calculate segment
db '1.3/1= '
db '2.5+3= '
db '3.9-3= '
db '4.4+5= '
Calculate ends
```
## 程序设计项目4
编程计算x(x>2)的y(y>2)次方。使用两种方式实现:
1. 只使用add指令实现。
2. 只使用mul指令实现。
并将计算式显示在屏幕中央。
例如:计算4的3次方。在屏幕中央显示格式如下:
```assembly
4
^
3
-----
64
```
注意:结果不能超过16位寄存器可存储的最大值。
## 程序设计项目5
定义一个数据段如下:
```assembly
data segment
db 'h12E332l@L#O*&^!88nI@cE$% %$T1O m33E44E55t y77O88u!()'
db '?'
data ends
```
注意:第一行字符串为待处理的数据,‘?’为字符串结束符号。
设计程序完成如下操作:
1. 去掉除字母、空格、‘!’之外的字符。
2. 通过内存间的数据交换,将数据段中的字符串修改为‘Hello!Nice to meet you!’。
3. 在屏幕正中打印处理好后的数据。
完成程序后思考:
1. 如何设计程序,程序代码量最少。
2. 如何设计程序,程序执行速度最快。
3. 如何设计程序,使得程序具有通用性。
提示:
1. ‘?'、‘!'和空格分别假定为字符串的结束符、一句话的最后的标点和单词间的间隔符,都不属于干扰符号。
2. 这里的通用性是指:任意带有其他符号干扰的一组字符串都能够通过程序被处理为具有如下特点的英文段落:段落中只包含字母、空格、‘!’三种符号。段落中的每句话都是以开头字母为大写,‘!’为结束标点的句子。
## 程序设计项目6
在屏幕中间显示:“中华”两个字。
![demo6](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo6.png)
提示:通过字模提取工具,可以提取字的显示信息。
## 程序设计项目7
在屏幕上动态演示六边形多次变大的过程。
要求:每次变大的过程,用不同颜色区分。
![demo7](https://github.com/Yibo-Li/assembly-language-exercises/blob/master/demo/demo7.gif?raw=true)
## 程序设计项目8
在屏幕中间显示一个‘Welcome to the world assembly !’字符串,同时显示模拟烟花效果。
其中,字符串的颜色为随机颜色,烟花的颜色也为随机颜色。
![demo8](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo8.gif)
进阶:
1. 实现同时多个烟花同时升起,且位置、高度、颜色随机。
2. 实现多个烟花升起时间、位置、高度、颜色、速度均随机。
提示:利用41h号端口的读写,实现随机数。
## 程序设计项目9
在屏幕上实现矩形的缩放。
要求:
1. 矩形缩放过程中,当矩形上下边重合时,矩形的宽度加10个字符;当矩形宽度为80个字符重合时,矩形宽度变为10个字符。
2. 开始矩形上下边用字符‘a’显示,当矩形上下边重合时,上下边变为‘b’显示,下一次上下边重合变为‘c’显示,依次类推。当用‘z’显示上下边重合时,上下边重新变为用‘a’显示。
3. 缩放过程中,矩形缩放到上下顶点时,上下边改变颜色。
![demo9](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo9.gif)
## 程序设计项目10
在屏幕上动态画出一棵七彩圣诞树。
![demo10](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo10.gif)
## 程序设计项目11
设计实现字符雨程序。
![demo11](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo11.gif)
提示:
1. 每列是一个单独的单元,在数据段中定义的数据要保证各列要显示的字符和开始显示的时机不一样。
2. 每一滴雨完全移出屏幕后,该雨滴所在列生成一个新的雨滴。
## 程序设计项目12
设计实现简单游戏“谁来买单”。
好友们一起出去玩,玩游戏决定谁来买单。人数为n(编号1、2、3...n)站成一个圆圈。首先从编号为m+1的人开始报数,数到k的人出列。接着,从下一个人开始报数,数到k的人出列。这个过程沿着圆圈一直进行,直到最终只剩下一个人,由这个人来买单。
![demo12](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo12.gif)
提示:涉及到循环单链表。
## 程序设计项目13
在屏幕上动态演示:冒泡法排序。
![demo13](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo13.gif)
示例说明:
1. 无箭头指向的红色数据为已经排序好的数据,红色箭头指向的红色数据为正在进行排序的数据,蓝色数据为未排序的数据。
2. 数据表格右边的‘>’和‘<’为两个数据的比较结果,若结果为‘>’,则将数据进行对换,取上方表格单元中的数据继续排序;若结果为‘<’(相等默认为‘<’),则直接取上方表格单元中的数据继续进行排序。
提示:需进行排序的数据大小随机产生,可利用41h端口实现。
## 程序设计项目14
在屏幕上动态演示:左手逃生法则。
![demo14](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo14.gif)
提示:
1. 地图中只有三种元素:墙、通道、出口。设计地图时,要给不同的元素赋予不同的编码。
2. 什么情况下改变行进的方向。遇到这些情况后根据当前方向决定下一步方向变化的规律是什么。
3. 左手逃生法则简述:在一个有出入口,没有回路的迷宫中,一直保持左手贴着墙壁向前走,总能找到迷宫出口。
## 程序设计项目15
在屏幕上动态演示:汉诺塔算法。
![demo15](https://raw.githubusercontent.com/Yibo-Li/assembly-language-exercises/master/demo/demo15.gif)
注意:
1. 注意体验以栈的方式处理数据。
2. 用递归方式实现的子程序,注意参数�
没有合适的资源?快使用搜索试试~ 我知道了~
汇编语言项目汇总.zip
共37个文件
asm:18个
gif:14个
png:2个
需积分: 5 0 下载量 129 浏览量
2024-02-15
10:56:19
上传
评论
收藏 5.33MB ZIP 举报
温馨提示
汇编语言项目汇总.zip
资源推荐
资源详情
资源评论
收起资源包目录
汇编语言项目汇总.zip (37个子文件)
assembly-exercises-master
01.asm 107B
04-1.asm 1010B
10.asm 1KB
05.asm 1KB
.gitattributes 483B
11.asm 4KB
09.asm 3KB
08.asm 3KB
demo
demo9.gif 885KB
demo14.gif 169KB
demo12.gif 1.27MB
demo11.gif 346KB
demo13.gif 400KB
demo2.png 5KB
demo15.gif 482KB
demo20.gif 3.8MB
demo6.png 5KB
demo8.gif 1.43MB
demo17.gif 2.11MB
demo16.gif 671KB
demo18.gif 3.98MB
demo7.gif 420KB
demo19.gif 2.15MB
demo10.gif 67KB
02.asm 2KB
04-2.asm 1KB
03.asm 1KB
16.asm 3KB
15-1.asm 4KB
15.asm 3KB
07.asm 16KB
13.asm 3KB
12.asm 3KB
06.asm 3KB
.gitignore 861B
README.md 13KB
14.asm 5KB
共 37 条
- 1
资源评论
徐浪老师
- 粉丝: 6205
- 资源: 6880
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功