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

运行结果截图:

王爽 汇编语言第三版 课程设计 1相关推荐

  1. 王爽 汇编语言第三版 第10章 call 和 ret 指令 以及 子程序设计

    第10章 call 和 ret 指令 10.1 ret 和 reft 指令 call 和 ret 指令都是转移指令,他们都修改 IP,或同事修改 CS 和 IP .他们经常被共同来实现子程序的设计. ...

  2. 王爽 汇编语言第三版 第7章 --- 更灵活的定位内存地址的方法(可以理解为 数组形式的内存定位)

    汇编语言(第三版)王爽著 的十二个实验:https://blog.csdn.net/OrangeHap/article/details/89791064 大小端 字节对齐 对于 arm,intel 这 ...

  3. 王爽汇编语言第三版答案

    转载自 https://blog.csdn.net/modiz/article/details/88776695 部分加上自己的分析,感谢 Modiz 汇编语言答案(王爽) 检测点1.1 (1)1个C ...

  4. 王爽 汇编语言第三版 第9章 转移指令的原理

    第九章  转移指令的原理 汇编代码: assume cs:codesgcodesg segments: mov ax,bx ; mov ax,bx 的机器码占两个字节mov si, offset sm ...

  5. 王爽 汇编语言第三版 第8章( 寻址方式 ) --- 数据处理的两个问题

    第八章    数据处理的两个基本问题 8.6 综合应用 示例代码 1: assume cs:codesg,ds:datasgdatasg segmentdb 1024 dup (0) datasg e ...

  6. 王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)

    问题 7.9: 将 datasg 段中前 4 个字母变成大写 汇编代码: assume cs:codesg,ss:stacksg,ds:datasgstacksg segmentdb 0,0,0,0, ...

  7. 王爽 汇编语言第三版 监测点9.2 监测点9.3 补全编程,利用jcxz指令,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,

    补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中. 而且,截图中给出了是字节.是8位,占通用寄存器的一半空间!区分出CL,CH! 为了区分 ...

  8. 王爽 汇编语言第三版 第11章 标志寄存器

    条件码: ① OF(Overflow Flag)溢出标志,溢出时为1,否则置0.标明一个溢出了的计算,如:结构和目标不匹配. ② SF(Sign Flag)符号标志,结果为负时置1,否则置0. ③ Z ...

  9. 王爽汇编语言第四版答案解析

    (暂停更新) 红色的是答案 目录 检测点 1.1 检测点 2.1 检测点 2.2 检测点 2.3 检测点 1.1 (1) 13 如果一个 cpu 有 n 根地址线,则可以说这个 cpu 的地址总线的宽 ...

最新文章

  1. SonarQube6.2源码解析(二)
  2. TQ210 —— s5pv210 Linux内核结构
  3. (王道408考研操作系统)第二章进程管理-第一节4:进程通信(配合Linux)
  4. 实现与优化深度神经网络
  5. cocos2d-x之猜数字游戏
  6. 微信爬虫服务器,微信文章爬虫使用教程 - 八爪鱼采集器
  7. JavaScript 动态生成表格
  8. wav怎么转换成mp3?
  9. 爱奇艺千亿级数据查询服务实践
  10. 无薪加班的第三天,我去公司打了卡
  11. JavaWeb:HTML
  12. ZZNUOJ_C语言1032:员工薪水(完整代码)
  13. matlab 求全波整流信号的傅里叶系数
  14. 超级码力在线编程大赛初赛 第3场 1.最大公倍数
  15. fir滤波器算法c语言程序,FIR滤波器C语言代码
  16. java学习--装饰器设计模式
  17. 1718: 身体质量指数
  18. 免费报名 | 腾讯云自研数据库CynosDB交流会
  19. linux yum pcre安装路径,yum 安装的pcre源码目录在哪
  20. 数字化风控的八个应用场景(上)

热门文章

  1. 不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络!
  2. 技术总结:图算法、开源工具及其在工业界的应用场景概述
  3. 【LeetCode】3月23日打卡-Day8
  4. W玻色子质量实验与理论矛盾,或是十年来最重要的进展
  5. [PA 2014]Kuglarz
  6. redisb并发访问慢出现的问题
  7. Linux用find查找指定文件的操作
  8. pppcloud云主机内LINUX用户安全管理2
  9. [Mac]Python 安装MySQLdb模块
  10. 问题解决:使用angularjs、ionic框架如何实现返回上一页并刷新