王爽 汇编 实验10
1. 显示字符串
第一次写出来的代码发现只能用作特定问题,如果其他程序调用子程序将会出错.后面的题目也就无法完成.所以重新写了一遍,进入后子程序中使用的寄存器全部入栈
1 assume cs:code 2 3 data segment 4 db 'Welcometomasm!',0 5 data ends 6 7 stack segment 8 db 16 dup (0) 9 stack ends 10 11 code segment 12 start: 13 mov dh,8 14 mov dl,3 ;第八行第三列 15 16 mov cl,2 ;颜色 17 18 mov ax,data 19 mov ds,ax ;ds指向数据段 20 21 mov si,0 22 call show_str 23 24 all: 25 jmp short all ;一直循环 26 27 mov ax,4c00h 28 int 21h 29 30 show_str: 31 push dx 32 push ax 33 push cx ;子程序开始前入栈 34 push si 35 36 mov ax,0b800h 37 mov es,ax ;es指向现存的起始地址 38 39 mov al,160 ;一行可现实80个字符,每个字符2字节.160字节 40 dec dh ;行-1 41 mul dh ;乘,结果在ax中 42 mov bx,ax 43 ;(n行-1)*160=n行开头的偏移地址 44 45 mov al,2 ;一个字符占2列 46 dec dl ;列-1 47 mul dl 48 mov di,ax ;列的偏移地址 49 ;(n列-1)*2=当前列的偏移地址 50 51 ;颜色设置 52 mov ch,0 53 mov dx,cx 54 s: 55 mov cl,[si] ;ds:[si]指向字符串的首地址 56 mov ch,0 57 jcxz ok 58 mov ax,[si] 59 mov es:[bx+di],ax 60 mov es:[bx+di+1],dx 61 ;一个字母占两个字节,一个ascii 62 add di,2 63 inc si 64 jmp short s 65 66 ok: 67 pop si 68 pop cx 69 pop ax 70 pop dx 71 ret 72 73 code ends 74 end start
图片显示:
3. 数值显示
1 assume cs:code 2 data segment 3 dw 16 dup (0) 4 data ends 5 6 code segment 7 start: 8 mov bx,data ;指向数据段 9 mov ds,bx 10 11 mov si,0 12 mov ax,12345 13 call dtoc 14 15 mov dh,3 16 mov dl,3 17 mov cl,2 18 call show_str 19 20 ;一直循环 21 all: 22 jmp short all 23 24 mov ax,4c00h 25 int 21h 26 27 dtoc: 28 push ax 29 push cx 30 push bx 31 push si 32 push di ;备份 33 34 mov bx,10 35 mov di,0 ;记录循环的次数 36 37 ;循环s用来 38 sd: 39 mov dx,0 40 div bx 41 add dx,30h 42 43 push dx ;用栈存储然后出栈调整顺序 44 inc di 45 mov cx,ax ;ax为商,商为0结束 46 47 jcxz okd 48 49 jmp short sd 50 okd: 51 52 mov cx,di 53 sd1: 54 pop ax 55 mov [si],al ;将值传入 ds:[si] 56 inc si 57 loop sd1 58 59 pop di 60 pop si 61 pop bx 62 pop cx 63 pop ax 64 ret 65 66 ; 字符展示子程序 67 show_str: 68 push ax 69 push bx 70 push cx ;子程序开始前入栈 71 push di 72 push si 73 74 mov ax,0b800h 75 mov es,ax ;es指向显存的起始地址 76 77 mov al,160 ;一行可现实80个字符,每个字符2字节.160字节 78 dec dh ;行-1 79 mul dh ;乘,结果在ax中 80 mov bx,ax 81 ;(n行-1)*160=n行开头的偏移地址 82 83 mov al,2 ;一个字符占2列 84 dec dl ;列-1 85 mul dl 86 mov di,ax ;列的偏移地址 87 ;(n列-1)*2=当前列的偏移地址 88 89 ;颜色设置 90 mov ch,0 91 mov dx,cx 92 s_show: 93 mov cl,[si] ;ds:[si]指向字符串的首地址 94 mov ch,0 95 96 jcxz ok_show 97 98 mov ax,[si] 99 mov es:[bx+di],ax 100 mov es:[bx+di+1],dx ;颜色设置 101 ;一个字母占两个字节,一个ascii 102 add di,2 103 inc si 104 jmp short s_show 105 106 ok_show: 107 pop si 108 pop di 109 pop cx 110 pop bx 111 pop ax ;出栈 112 ret 113 114 code ends 115 end start
转载于:https://www.cnblogs.com/Triomphe/p/8545461.html
王爽 汇编 实验10相关推荐
- 王爽汇编语言 实验10
1.显示字符串 解: assume cs:code data segment db 'Welcome to masm!',0 data endscode segment start:mov dh,8m ...
- 王爽汇编语言实验10
显示字符串 写完后结果出错,检查了几遍也没发现逻辑错误,用debug逐步调试后才发现有些寄存器中的值没有初始化就拿来直接用了,影响了后面的计算,造成结果的错误. assume cs:code,ds:d ...
- 8086汇编学习小记-王爽汇编语言实验12
8086汇编学习小记-王爽汇编语言实验12 0号中断处理程序,开始安装在0000:0200处的程序最后用死循环导致显示不出'divided error',改成直接退出就正常显示了.注意修改ss,sp之 ...
- 【汇编语言 王爽】实验14代码
实验需求如下: 编程,以"年/月/日 时:分:秒"的格式显示时间 注意:CMOS RAM中储存着系统的配置信息,除了保存时间信息的单元外,不要向其他单元写入内容,否则将引起一些系统 ...
- 汇编语言(王爽)实验十 编写子程序
标 题: 汇编实验10-- 编写子程序 作 者: XHS_12302 时 间: 2016_7_28 16:56 实验10编写子程序 在这次实验中,我们将要编写3个子程序,通过它们来认识几个常见的问题和 ...
- 【王爽汇编】实验9 根据材料编程
前言:这是王爽版汇编语言第四版第187页的一道题目,因为我觉得有点难,非常有借鉴意义,所以我打算写一篇博客,顺便把题目再写一遍,这样也许会看的更仔细.我会在题目的中间加上自己的思考和分析,因为对于初学 ...
- 王爽 汇编语言 实验七
最近在看王爽老师的汇编语言,写的确实很好,简单易懂,引人入胜!相比较我们学校一些老师的书籍,那简直是··· 惨绝人寰 先说一下思路: 题目的简单表述就是:将一个段的内容复制到另一个段,不过要排列成固定 ...
- 【汇编语言】(王爽)实验4解答
题目1 编程:向内存0:200 - 0:23F 中存放数据 0 - 3FH ; 向内存 0:200 ~ 0:23f 写入数据0~3fH[字节型数据] assume cs:code code segme ...
- 汇编 王爽老师实验三,查看psp区
源程序:assume cs:codesg codesg segment mov ax,2000h mov ss,ax mov sp,0 add sp,10 po ...
最新文章
- 什么是视觉Visual SLAM
- 1-4 多文档界面处理(3)
- VC++下使用md5函数
- python 进程理论基础
- HBNIS-crypto
- 收藏!这些 IDE 使用技巧,你都知道吗
- hdu 3666 THE MATRIX PROBLEM 差分约束系统
- caffe 初学参考链接
- Css3之基础-5 Css 背景、渐变属性
- 稳定性测试怎么测_心理测试:选择你喜爱的一种食物,测你2020年的运势怎么样...
- 张朝阳:社交是互联网的中原 做「狐友」是要逐鹿中原
- java销毁servlet_「销毁session」Servlet销毁session - seo实验室
- 乔治城大学计算机专业,美国乔治城大学计算机
- 135端口入侵个人电脑
- Docker硬盘空间使用分析与清理
- 逆转三国攻略-各阶段关卡武将
- 云呐-fsu动环监控单元,fsu动环监控单元是什么
- Axure谷歌浏览器扩展程序下载及安装方法(免翻墙)
- css特殊边框形状_了解CSS边框角形状
- 贝叶斯学派:先验分布、后验分布、共轭分布、共轭先验分布
热门文章
- 计算机系统基础期中考试,计算机系统基础第二次作业.docx
- 英朗gt仪表盘图标说明_BuildRun低代码开发教程八节 | 图表和仪表盘展示
- 【阿里云课程】注意力机制原理,应用与设计
- 【每周NLP论文推荐】从预训练模型掌握NLP的基本发展脉络
- MNA-CNN: 如何在美学质量评估中储存照片原始信息
- 全球及中国食品供应区块链行业运行形势及未来投资规模建议报告2021年版
- 中国组合聚醚市场十四五发展规划与未来竞争趋势分析报告2022-2028年版
- systemparametersinfo详细
- std:: string 的常用使用
- openresty开发系列18--lua的字符串string操作