汇编语言课程设计一代码如下

assume cs:codesg
datasg segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1982'db '1993','1994','1995'dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226dw 11542,14430,15257,17800
datasg ends
table segmentdb 21 dup('year sume ne ?? ')
table endsdata_str segmentdb 16 dup(0)
data_str endscodesg segmentstart:mov ax,datasgmov ds,axmov ax,tablemov es,axmov si,0mov di,0mov bx,0mov cx,21;完成数据搬迁s:;将es指向table段,复制年mov ax,[si]mov es:[bx],axmov ax,[si+2]mov es:[bx+2],ax;复制收入mov ax,[si+4*21]mov es:[bx+5],axmov dx,[si+4*21+2]mov es:[bx+5+2],dx;复制雇员数mov bp,[di+4*21+4*21]mov es:[bx+10],bp            div word ptr es:[bx+10]mov es:[bx+13],axadd bx,16add si,4add di,2loop s;显示数据 ds指向table;显示年mov ax,tablemov ds,axmov cx,21mov dh,1mov dl,1mov si,0show_year:push cxmov byte ptr [si+4],0               mov cl,01111100bcall show_stradd dh,1add si,16pop cxloop show_year;显示收入     mov ax,data_strmov ds,axmov cx,21mov si,0mov bx,0mov di,1show_income:push cx    ;到table去取数据,转换成十进制后把要显示的数据写到data_str段mov ax,es:[bx+5]mov dx,es:[bx+5+2]call dotcmov ax,dimov dh,almov dl,20mov cl,1call show_strinc diadd bx,16pop cxloop show_income;显示雇员人数mov cx,21mov si,0mov bx,0mov di,1show_ne:push cx  ;到table去取数据,转换成十进制后把要显示的数据写到data_str段mov ax,es:[bx+10]mov dx,0call dotcmov ax,dimov dh,almov dl,40mov cl,2call show_strinc diadd bx,16pop cxloop show_ne;显示人均收入mov cx,21mov si,0mov bx,0mov di,1show_ne_income:push cx  ;到table去取数据,转换成十进制后把要显示的数据写到data_str段mov ax,es:[bx+0dh]mov dx,0call dotcmov ax,dimov dh,almov dl,60mov cl,11111001bcall show_strinc diadd bx,16pop cxloop show_ne_incomemov ax,4c00hint 21h     ;子程序
;功能:进行不会产生溢出的除法运算,
;            被除数为dword型,除数为word型
;            结果为dword型
;参数:(ax) = dword 型数据的低16位
;             (dx) = dword 型数据的高16位
;               (cx) = 除数
;返回:(dx) = 结果的高16位,(ax) = 结果的低16位
;               (cx)=余数
;   在写程序之前先回顾一下除法的运算
; 被除数为16位,除数为8位:被除数放在ax中
;   被除数为32位,除数为16位:被除数放在dx和ax
;                                                   其中,dx存放高16位
;                                                   ax存放低16位
divdw:push bx;暂时将低位被除数放在栈中push ax;处理高位除法mov ax,dx;因为是最高位,所以需要将ds置零mov dx,0div cx;除法得的商在ax中,为高位商,暂时存放在bx中;得的余数放在ds中,不操作,需要作为低位数据的高位mov bx,ax;开始处理低位除法,在这里ds中存放了;上一次高位的余数,作为本次低位除法的高位pop axdiv cx;最终的余数放在cx中mov cx,dx;高位商放在dx中,低位商在ax中mov dx,bxpop bxret;名称:show_str;功能:在指定的的位置,用指定的颜色,;            显示一个用0结束的字符串;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79);   (cl)=颜色属性,ds:si指向字符串的首地址;小程序思想;1.将寄存器指向0b800h,即显存所在的位置;2.将偏移地址指向要显示的地方;3.ah保存要显示的属性,al保存要显示的内容show_str:push axpush cxpush bxpush espush sipush dx;es指向0b800h处mov ax,0b800hmov es,ax;将偏移地址指向要显示的行和列;计算行mov al,160mul dh; 计算列mov dh,0add dx,dx;计算总偏移地址mov bx,axadd bx,dx;用ah储存要显示内容的属性mov ah,clshow:mov cl,[si]mov ch,0jcxz okmov al,[si]mov es:[bx],axinc siadd bx,2jmp short showok:pop dxpop sipop espop bxpop cxpop axret;名称:dtoc
;将dword型数转变为表示十进制数的字符串,字符串以0为结尾
;参数:(ax)=dword型数据的低16位
;      (dx) = dword型数据的高16位
;      ds:si指向字符串的首地址
;       没有返回值
;思想:通过每次将数字除十,得到余数,余数每次加30h变成十进制的数,每次得到的数放到栈中,最后一起弹出,放到指定位置dotc:push axpush cxpush dxpush simov cx,0push cx  dotc_start:mov cx,10call divdwadd cx,30hpush cxmov cx,dxjcxz dotc_dx_okjmp dotc_startdotc_dx_ok:mov cx,axjcxz dotc_ax_okjmp short dotc_startdotc_ax_ok:mov dx,sidotc_loop:pop cxmov ds:[si],cljcxz dotc_endinc sijmp short dotc_loopdotc_end:   pop sipop dxpop cxpop axretcodesg ends
end start

汇编语言之课程设计一相关推荐

  1. 《汇编语言》课程设计

    一.目的     知行合一,就是说学以致用.<汇编语言>这本书从13年春节开始看,中间由于众多事物中断,知道14年春节才看完.但是,百看不如一练,借着刚看完书,对汇编语言还很热的感觉,决定 ...

  2. c51抢答器程序汇编语言,单片机课程设计抢答器word 含汇编语言源程序,仿真

    OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0IN ...

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

    From:https://www.cnblogs.com/Since-natural-ran/p/6938133.html 汇编语言-课程设计1: https://www.cnblogs.com/ts ...

  4. (王爽)汇编语言-课程设计二完整版

    王爽汇编语言-课程设计二 前言 特别感谢 实验结果 实验思路 如何优化调试流程以节省时间 源码 未完成部分 前言 刚刚把lab2调试完,2021年10月12日 16:26:36,本来是打算在oneno ...

  5. 小球碰壁反弹加分_汇编课程设计——小球碰壁

    汇编语言程序设计 课程设计说明书 一.需求分析 功能需求: 对小球的描绘. 移动以及碰撞反弹的运动情况. 画球的主要思路是画出圆心 相同. 半径依次递减的圆组合起来即可得到一个球, 其核心算法是 Br ...

  6. 学习汇编语言 -王爽,自已完成的一道课程设计题 (5)

    课程设计1 (材料详见书上211页) 题目描述: 以下是我解答的完整的代码: :>-------------------------------------------------------- ...

  7. 计算机课程设计课程计划书,计算机汇编语言课程设计计划书.doc

    计算机汇编语言课程设计计划书 第1章 课程设计目的与要求 1.1课程设计目的 本课程实际是计算机科学与技术专业得技术实践课.主要目的是使学生学会微机汇编语言程序的整体设计过程和设计思路,将微机汇编语言 ...

  8. 80c51流水灯汇编语言,单片机AT89C51可控流水灯课程设计报告(汇编语言).docx

    单片机AT89C51可控流水灯课程设计报告(汇编语言).docx 目录目录1第一章 课题的意义及应用2第二章 系统的总体设计32.1 设计方法32.2 数码管显示方案32.3 键盘输入方案4第三章 硬 ...

  9. 《汇编语言》王爽(第四版) 课程设计1

    文章目录 前言 一.课程设计任务 二.任务分析 1.公司数据的格式 2.数据转为字符串 3.显示多个数据 三.实现代码 总结 前言 本文是王爽老师<汇编语言>(第四版) 课程设计1 &qu ...

最新文章

  1. CREATE TABLESPACE
  2. 算法----------加一
  3. 皮一皮:狗子的眼神很绝望...
  4. android透明像素效率,android-非透明像素上的ImageView ColorFilter.夹
  5. epoll边缘触发_C++回声服务器_9-epoll边缘触发模式版本服务器
  6. 路径获取文件名通用方法
  7. HTTP状态:202、301、304、404、503
  8. 【codevs1286】【BZOJ1503】郁闷的出纳员,splay练习
  9. FoneDog Toolkit iOS Data Recovery如何从iPhone恢复已删除的数据
  10. GPU图形加速型云服务器是什么?
  11. 【git】结合Gerrit 代码审查工具的操作流程,工作流程
  12. 3dmax塌陷在哪里?怎么用?
  13. selenium--自动化识别图片验证码并输入
  14. 计算机驱动程序属于系统还是软件,什么是VGA驱动程序?
  15. 计算机专业中的量词,什么是量词?说明量词的分类和语法特征.
  16. soap python_Zeep: Python SOAP 客户端
  17. 各种计算机绘图的应用场合,cad制图员面试技巧
  18. 步骤教学 :安装下载Oracle VM VirtualBox + 安装win7 win10镜像文件
  19. Centos8安装Tomcat8.5.55
  20. [UE4]Stat命令

热门文章

  1. Teams App自定义
  2. 【例题】【高斯消元】USACO3.2.4 Feed Ratios
  3. 初识C语言:IDE的选择与使用【C语言】
  4. 开发随笔——花生壳错误“您的局域网服务器连接失败,请检查局域网IP与端口“
  5. 实现sqlite datediff日期时间相减(日期差)的方法
  6. 显卡的性能看哪些参数?
  7. python——加解密hashlib/hmac/random/secrets/base64/pycrypto
  8. Javascript技巧大集合(转自http://www.mscto.com/JavaScript/041043806.html)
  9. javascript技巧收集(200多个)
  10. SIM卡APN选择说明