王爽 汇编语言第三版 课程设计 1

 

From:https://www.cnblogs.com/Since-natural-ran/p/6938133.html

 

汇编语言-课程设计1: https://www.cnblogs.com/tsembrace/p/3267158.html
王爽课程设计1(汇编语言编写): https://www.imooc.com/article/18785
王爽《汇编语言》课程设计1: https://blog.csdn.net/zhangyuzuishuai/article/details/52274104

 

 

预备知识:

  清屏:若要显示这些数据,不希望被之前的信息所影响,所以先把屏幕清理;

assume cs:codestack segmentdw 16 dup(0)code segmentstart:mov ax,stackmov ss,axmov sp,16mov ax,0b800hmov es,axpush bp     ;保留现场,虽然没什么用,但是要养成习惯push cxmov bp,0    ;行mov cx,22   ;一共有22行需要清屏s1:mov si,0push cxmov cx,80   ;每一行有80个字符s2:mov byte ptr es:[bp+si],0   ;空字符mov byte ptr es:[bp+si+1],7 ;属性add si,2loop s2add bp,160pop cxloop s1pop cxpop bpmov ax,4c00h                ;不要忘了正常退出int 21h
code ends
end start

写成函数的形式:

assume cs:codestack segmentdw 16 dup(0)code segment
start:main:mov ax,stackmov ss,axmov sp,16mov ax,0b800hmov es,axcall sub1mov ax,4c00h                ;不要忘了正常退出int 21hsub1:push bp     ;保留现场,虽然没什么用,但是要养成习惯push cxmov bp,0    ;行mov cx,22   ;一共有22行需要清屏s1:mov si,0push cxmov cx,80   ;每一行有80个字符s2:mov byte ptr es:[bp+si],0   ;空字符mov byte ptr es:[bp+si+1],7 ;属性add si,2loop s2add bp,160pop cxloop s1pop cxpop bpretcode ends
end start

效果相同

对于字符串的显示程序:

assume cs:codestack segmentdw 16 dup (0)
stack endsdata segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','1994','1995'
data endscode segment
start:main:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axmov ax,0b800h   ;显示段mov es,axmov bx,0mov bp,160      ;行add bp,160mov cx,21s1:mov si,0        ;列push cxmov cx,4s2:call show_yearadd si,2inc bxloop s2add bp,160pop cxloop s1mov ax,4c00hint 21hshow_year:push axmov al,[bx]mov es:[bp+si],almov byte ptr es:[bp+si+1],02h   ;注意这里要用byte ptrpop axret
code ends
end start

  

 

要求:把试验七的数据显示在屏幕上

assume cs:code
stack segmentdw 0,0,0,0,0,0,0,0
stack ends
;******************************数据段******************************
data segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','1994','1995'; 21个年份的字符串dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;21年公司收入数据dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635dw 8226,11542,14430,15257,17800;21年公司员工人数dd 21 dup (0)     ;21个人均年收入dw 10
data endscode segment
start:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axmov ax,0b800hmov es,ax;计算人均收入mov si,84mov di,168mov bx,210mov cx,21jisuan:call div_ddadd si,4add di,2add bx,4loop jisuan
;清屏call clear_scr
;显示年份数据mov bx,0mov bp,160mov cx,21year1:mov si,0push cxmov cx,4year2:call show_yearadd si,2inc bxloop year2add bp,160pop cxloop year1;显示收入数据mov bx,84mov bp,180mov cx,21shouru:mov di,0call show_shouruadd bx,4add bp,160loop shouru
;显示员工数据mov bx,168mov bp,200mov cx,21yuangong:mov di,0call word_showadd bx,2add bp,160loop yuangong
;显示人均收入mov bx,210mov bp,220mov cx,21renjun:mov di,0call show_shouruadd bx,4add bp,160loop renjunmov ax,4c00hint 21h;dd除法运算
div_dd:push axpush dxmov dx,0mov ax,[si+2]div word ptr [di]mov [bx+2],axmov ax,[si]div word ptr [di]mov [bx],axpop dxpop axret;清屏
clear_scr:push bppush cxmov bp,0mov cx,22clear1:mov si,0push cxmov cx,80clear2:mov byte ptr es:[bp+si],0168mov byte ptr es:[bp+si+1],0add si,2loop clear2add bp,160pop cxloop clear1pop cxpop bpret;显示一个字节的字符year
show_year:push axmov al,[bx]mov es:[bp+si],almov byte ptr es:[bp+si+1],02hpop axret;显示dword型数据为字符串,存入显示区域
show_shouru:push axpush bxpush cxpush dxpush simov dx,ds:[bx+2]mov ax,ds:[bx]mov si,0s1:push axmov ax,dxmov dx,0div word ptr ds:[294]mov bx,axpop axdiv word ptr ds:[294]push dxinc simov dx,bxmov cx,axjcxz ok1jmp short s1ok1:mov cx,dxjcxz ok2jmp short s1ok2:mov cx,sis2:pop axadd al,30hmov es:[bp+di],almov byte ptr es:[bp+di+1],02hadd di,2loop s2pop sipop dxpop cxpop bxpop axret;转换word型数据为字符串
word_show:push axpush bxpush cxpush dxpush simov ax,ds:[bx]mov si,0s3:mov bl,almov al,ahmov ah,0div byte ptr ds:[294]mov bh,almov al,bldiv byte ptr ds:[294]mov bl,ahmov ah,bhpush bxmov cx,axinc sijcxz ok3jmp short s3ok3:mov cx,sis4:pop axadd al,30hmov es:[bp+di],almov byte ptr es:[bp+di+1],02hadd di,2loop s4pop sipop dxpop cxpop bxpop axretcode ends
end start

运行结果截图:

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

挑战权威还是偏离主流?颠覆性研究或将证明神经信号是机械波

来源:科研圈 翻译 马骁骁 编辑 魏潇 廖红艳就职于哥本哈根尼尔斯玻尔研究所(Niels Bohr Institute)的托马斯亨伯格(Thomas Heimburg),是一位研究量子力学和生物物理的物理学家。然而,他却希…

史上最全的女人坐月子注意事項

希望男人们要精心照顾好妻子,让妻子平安度过这一时期,为了宝宝,为了你们的幸福,因为你爱她就要呵护她,她好你也好,她平安就是你们全家的幸福,精致女人把祝福送给你们! 传统上人们将产…

斯坦福大学、DARPA与硅谷公司共同分析前沿科技发展趋势

来源:科技日报 作者:张梦然日前,斯坦福大学研究团队、美国国防部高级研究计划局(DARPA)以及硅谷创投公司和米资本的专家们,共同研讨了技术将如何重塑行业和社会等问题。他们分析了现今全球前沿科技的未来…

小甲鱼 OllyDbg 教程系列 (一) :二进制破解科普系列之 ReverseMe

小甲鱼 视频教程( 4、5 集 ):https://www.bilibili.com/video/av6889190?p4 实验程序 reverseME.exe 下载地址:https://pan.baidu.com/s/18NDV3rQ_yV_qzUrNRYmqjA 提取码:e91j http://www.360doc.com/content/1…

java将字符串生成图片

java将字符串保存为图片 因为最近接触到的需求是要将指定的字符串内容保存为图片,我知道肯定要用awt相关的东西,但是以前没有接触过awt,所以只能去网上学习相关的东西和找有关的资料,好在最后可以解决,直接上代码&…

AI 综述专栏 | 超长综述让你走近深度人脸识别

来源:人工智能前沿讲习班 作者: 葛政相信做机器学习或深度学习的同学们回家总会有这样一个烦恼:亲朋好友询问你从事什么工作的时候,如何通俗地解释能避免尴尬?我尝试过很多名词来形容自己的工作:机器学习&…

机器人也能拥有人类情感:“情感计算”让机器人学会“读心术”

来源:《情感计算与情感机器人系统》作者:吴敏,刘振焘,陈略峰著随着机器人进入日常生活中的各个方面,人们对其提出了更高的要求,希望它们具有感知人类情感、意图的能力,这类机器人称为情感机器人…

C 语言 函数调用栈

From:https://www.cnblogs.com/clover-toeic/p/3755401.html https://www.cnblogs.com/clover-toeic/p/3756668.html 程序的执行过程可看作连续的函数调用。当一个函数执行完毕时,程序要回到调用指令的下一条指令(紧接call指令)处继续执行。函数调用过…

寒武纪创始人兼CEO陈天石博士的公开信

来源:来源:寒武纪科技摘要:2018年5月3日,寒武纪已在中国上海发布了首款云端智能芯片MLU100及相应的板卡产品。作为寒武纪的创始人和CEO,我非常自豪地与大家分享一个消息:2018年5月3日,寒武纪已在…

压栈, 跳转,执行,返回:从汇编看函数调用

From:https://www.jianshu.com/p/594357dff57e C函数调用过程原理及函数栈帧分析:https://blog.csdn.net/zsy2020314/article/details/9429707 从本篇开始,我们讨论一些高级语言中的基础设施:堆栈,函数调用&#xff0…

IBM AIX 5.3 系统管理 -- 系统启动过程详解

一. 启动过程 启动过程包含下面的一些步骤: 1.1启动一个系统的初始步骤是上电自检(Power On Self Test,POST)。其目的是验证基本硬件是否处于正常的工作状态。同时初始化内存、键盘、通信,以及音频设备。您可以看到在屏…

作弊阴影罩棋盘,人工智能咋避嫌?

来源:奇怪的科学家为什么要写这样一句话,就是为了避免剧情和现实生活中发生的事情万一差不多,会侵犯到别人的隐私,发生侵权,给双方带来不必要的麻烦。这位名为刘超的棋手把手机插在上衣兜里,摄像头正对棋盘…

ubuntu server版本安装指南(1)

ubuntu是基于GNU/Linux 的操作系统,本身是在同样GNU/Linux 架构下的Debian的基础上的一个版本。由于它在桌面环境上的易用性和精细度是许多人认识了他。ubuntu的强大在一定程度上体现在apt包管理系 统。安装软件不必像以前那样幸苦找到下载地址。编译安装。还要非常…

Arm中国合资公司具体布局浮出水面

来源:经济观察报摘要:作为全球最具影响力的芯片技术供应商之一,Arm在中国正迎来新的时代。对于Arm与中国合资公司事宜,5月4日下午,Arm授权的代表邮件回复《经济观察报》称:“合资公司目前刚开始运营”&…

汇编逆向基础

汇编逆向基础:https://www.xmind.net/m/kvJK/

深入理解Nginx~运行中的Nginx进程间的关系

在正式提供服务的产品环境下,部署Nginx时都是使用一个master进程来管理多个worker 进程,一般情况下,worker进程的数量与服务器上的CPU核心数相等。每一个worker进程都 是繁忙的,它们在真正地提供互联网服务,master进程…

哥伦比亚大学AI实验室主任Hod Lipson:阻碍无人驾驶技术发展的7个误区

来源:智车科技摘要:我们发现有些针对无人驾驶的误解还在广泛肆意传播,并且这些信息会被反对者拿来和对抗无人驾驶的推广政策。每年,全世界都有将近120万人死于车祸,这个死亡率相当于每年释放10个广岛级别的原子弹爆炸。…

PE文件结构详解 --(完整版)

From:https://blog.csdn.net/adam001521/article/details/84658708 PE结构详解:https://www.cnblogs.com/zheh/p/4008268.html PE格式解析-区段表及导入表结构详解:https://blog.csdn.net/qq_30145355/article/details/78859214 PE文件基本…

人工智能下一个热点探讨,为什么要提出互联网大脑模型 ?

作者:刘锋 计算机博士 《互联网进化论作者》前言从2008年发表论文第一次提出互联网大脑模型,时间已经过去十年。撰写这篇文章,主要是详细介绍我们在十年前提出互联网大脑模型的原因;十年来在计算机和智能领域产生了哪些进展&…