2022-3-6 王爽《汇编语言》实验7
同一段里的数据是紧挨着放置的
分成 4 部分
- 填写年份
- 填写收入
- 填写雇员数目
- 计算人均收入并填写
由于前两部分移动的数据量是一致的,所以可以合并到一起写。
第三部分和第二部分的区别是循环的次数少了一半。
计算人均收入重点在于 被除数的高位和低位。
难点在于不同代码段之间的寻址。
代码
assume cs:codesg
//数据的源地址
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 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,8226
dw 11542,14430,15257,17800data ends
//数据的目的地址
table segment
db 21 dup('year summ ne ?? ')
table ends
//暂时存放寄存器的地址
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg endscodesg segment
//initialize ds
start: mov ax,datamov ds,ax//initialize esmov ax,tablemov es,ax//initialize ssmov ax,stacksgmov ss,axmov sp,16mov bp,0//initialize bx,cs and ready for the first loop
//the first loop is to move year and profit mov bx,0mov cx,21
//double loop
//store and reset cx
//initialize si for each loops0:mov [bp],cxmov cx,2mov si,0
//set year
//get offset for srcs:mov bx,[bp+2]
//get year from source memory mov ax,ds:[bx+si] //get offset for destmov bx,[bp+4]//put year into destinationmov es:[bx+si],ax//set profit
//get offset for srcmov bx,[bp+2]
//get profit from source memory mov ax,ds:[bx+si+84] //get offset for destmov bx,[bp+4]//put profit into destination mov es:[bx+si+5],axadd si,2loop s//update offset of src memorymov bx,[bp+2]add bx,4mov [bp+2],bx
//update offset of dest memorymov bx,[bp+4]add bx,16mov [bp+4],bxmov cx,[bp]loop s0//initialization for the second loop
//the second loop is to move the number of staffs
//initialize the offset of srcmov bx,168mov [bp+2],bx//initialize the offset of dest mov bx,0ahmov [bp+4],bx//set the times of loop mov cx,21s1:
//get offset for src mov bx,[bp+2]
//get the number of staffs from source memory mov ax,ds:[bx] //get offset for destmov bx,[bp+4]//put the number of staffs into destination mov es:[bx],ax//update offset of src memorymov bx,[bp+2]add bx,2mov [bp+2],bx
//update offset of dest memorymov bx,[bp+4]add bx,16mov [bp+4],bxloop s1//initialization for the third loop
//the third loop is to Calculate per capita income
//set the times of loop mov cx,21mov bx,0s2://被除数高位mov dx,es:[bx+7] //被除数低位 mov ax,es:[bx+5]//除数div word ptr es:[bx+0ah]
//将商存入内存mov es:[bx+0dh],ax//更新内存指向的偏移量add bx,16loop s2//程序终止mov ax,4c00hint 21h
codesg ends
end start
最终的运行结果
2022-3-6 王爽《汇编语言》实验7相关推荐
- 8086汇编学习小记-王爽汇编语言实验12
8086汇编学习小记-王爽汇编语言实验12 0号中断处理程序,开始安装在0000:0200处的程序最后用死循环导致显示不出'divided error',改成直接退出就正常显示了.注意修改ss,sp之 ...
- 王爽 汇编语言 实验七
最近在看王爽老师的汇编语言,写的确实很好,简单易懂,引人入胜!相比较我们学校一些老师的书籍,那简直是··· 惨绝人寰 先说一下思路: 题目的简单表述就是:将一个段的内容复制到另一个段,不过要排列成固定 ...
- 王爽汇编语言 实验11
第十章的实验11出的有点不同.一是相对简单一些,还有似乎没有用到太多本章的内容.比如MOVSB 就没用到.下面是我的代码 1 assume ds:datasg, cs:code 2 datas ...
- 王爽 汇编语言 实验全部答案
实验一 实验二 实验三 实验四 实验五 实验六 实验七 实验八 实验九 实验十 实验十一 实验十二 实验十三 实验十四 实验十五 (未完持续,正在写ing)
- 王爽汇编语言 实验5
(1).1 当debug未执行我们的代码段指令时,从075A:0000开始的256字节是PSP段(之前的实验中已经进行过相关解释),而此时我们定义的数据是从075A:0100开始存放的.这个时候D ...
- 菜鸡记录-王爽-汇编语言-实验十(编写子程序-解决除法溢出)
题目: 代码: assume cs:code,ss:stackstack segmentdw 8 dup(0) stack endscode segment start:mov ax,stackmov ...
- 菜鸡记录-王爽-汇编语言-实验十(编写子程序-显示字符串)
题目: 代码: assume cs:codedata segmentdb 'Welcome to masm!',0data endscode segmentstart: mov dh,8mov dl, ...
- 王爽汇编语言实验7一个很好的解法(转)
assume cs:codesg,ds:datadata segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983 ...
- 王爽汇编语言 实验14
assume cs:codecode segment start:;年份 mov al,9out 70h,alin al,71hmov ah,almov cl,4shr ah,cland al,000 ...
- 王爽汇编语言 实验15
解: assume cs:codestack segmentdb 128 dup(0) stack endscode segment start:mov ax,stackmov ss,axmov sp ...
最新文章
- Ubuntu 下安装thttpd Web服务器
- IOS 学习---触摸事件与手势
- react-native 小米手机和 mac 安装
- 【前端开发系列】—— CSS3属性选择器总结
- 【python】pyhton中的and
- APP适配安卓手机刘海屏
- 极简主义下,Effie与幕布的碰撞,思维导图的正确打开方式?
- Aircrack-ng套件——无线破解原理及工具详解
- 计算机老师素质能力提升计划要求,教师2021个人素质提升计划范文
- python圣斗士修炼(十八):访问mysql数据库
- php控制树莓派GPIO
- 深度学习--解决模型过拟合的问题
- CVPR 2021大奖出炉!何恺明获最佳论文提名,华人四篇“最佳”!第一届Thomas S. Huang 纪念奖颁发...
- ★Oracle imp/impdp 导入dmp文件到数据库
- 【ChatGPT机器人】打造你的私人聊天助手
- 图形学 ---- 二维几何变换(二维图形矩阵平移,旋转,缩放)
- 3、Windows之CMD装逼命令————CMD命令打开网页(让人一看你就是个电脑高手)
- handsome主题美化(二)- 底部页脚版权美化
- 基本sctp套接字编程及实例讲解
- Mp4 分割 怎么将mp4视频文件分割成几段