第八章:数据处理的两个基本问题05

让编程改变世界

Change the world by program


实验七:寻址方式在结构化数据访问中的应用

这个程序是到目前为止我们遇到的最复杂的程序,它几乎用到了我们之前学过的所有知识和编程技巧。 这个程序是对我们目前能力的一个考验,请一定要认真完成,务必弄明白才继续往下学习。

源数据在哪里?

年份(0-53H)、收入(54H-0A7H)、雇员(0A8H-0D1H)的存放位置

目标存放位用什么来表示?

年份、收入、雇员、平均收入的存放位置

观察数据类型和如何利用偏移寻址?

初始化阶段

mov ax,data

mov ds,ax

mov ax,table   ;这里因为data已被占用

mov es,ax

mov bx,0

mov si,0

mov di,0

mov cx,21         ;二十一次循环,大家可想而知

每次循环要执行的任务

  • 存放年份
  • 存放公司总收入
  • 存放公司人数
  • 计算人均收入并存放

存放年份

mov al,[bx]

mov es:[di], al

mov al,[bx+1]

mov es:[di+1], al

mov al,[bx+2]

mov es:[di+2], al

mov al,[bx+3]

mov es:[di+3], al

存放公司总收入

mov ax,54h[bx]    ;第一个'年收入'的段基                                      ;址为54H

mov dx,56h[bx]

mov es:5h[di],ax

mov es:7h[di],dx

存放公司人数

mov ax,0A8h[si]       ;第一个'人数'的段基址                                           ;为0A8H mov es:0Ah[di],ax

计算人均收入并存放 mov ax,54h[bx] mov dx,56h[bx]                    ;这两句是初始化被除数 div word ptr ds:0A8h[si]   ;除以人数 mov es:0dh[di],ax                ;将商放入指定位置   为下一次循环时存放数据做准备

add bx,4  ;bx确定年份和收入

add si,2    ;si确定人数

add di,16 ;di确定的是每行的列数

[buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LRYEJBCTSHOJ']视频下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2011/01/03/3846029.html

数据处理的两个基本问题05 - 零基础入门学习汇编语言42相关推荐

  1. 更灵活的定位内存地址的方法05 - 零基础入门学习汇编语言36

    第七章:更灵活的定位内存地址的方法05 让编程改变世界 Change the world by program 问题7.8 [codesyntax lang="asm"] assu ...

  2. 外中断02 - 零基础入门学习汇编语言70

    第十五章:外中断02 让编程改变世界 Change the world by program 小甲鱼和大家谈谈心 一个帖子引发小甲鱼的反省! 猫姐曾经说过,步子别迈太大,容易扯着蛋! 结果还真蛋疼了- ...

  3. 函数05 - 零基础入门学习C语言36

    第七章:函数05 让编程改变世界 Change the world by program 函数的嵌套调用 嵌套定义就是在定义一个函数时,其函数体内又包含另一个函数的完整定义. 然而,C语言不能嵌套定义 ...

  4. 结构体与共用体05 - 零基础入门学习C语言57

    第十章:结构体与共用体05 让编程改变世界 Change the world by program 对链表结点的删除操作实现 实现源代码: [codesyntax lang="c" ...

  5. 指针05 - 零基础入门学习C语言45

    第八章:指针05 让编程改变世界 Change the world by program 字符串与指针 (1) 用字符数组存放一个字符串,然后输出该字符串. 例题一:定义一个字符数组,对它初始化,然后 ...

  6. 循环控制结构程序05 - 零基础入门学习C语言20

    第五章:循环控制结构程序05 让编程改变世界 Change the world by program break和continue语句 break语句 break语句可以用来从循环体内跳出循环体,即提 ...

  7. 分支程序设计05 - 零基础入门学习C语言14

    第四章:分支程序设计05 让编程改变世界 Change the world by program switch语句 练习1:输入三个整数,输出最大数和最小数. 答案与解析: [codesyntax l ...

  8. 端口01 - 零基础入门学习汇编语言67

    第十四章:端口01 让编程改变世界 Change the world by program 引言 CPU可以直接读写3 个地方的数据 (1)CPU 内部的寄存器: (2)内存单元: (3)端口. 这一 ...

  9. 外中断03 - 零基础入门学习汇编语言71

    第十五章:外中断03 让编程改变世界 Change the world by program 继续编写int 9中断例程 第三步:如果是Esc键的扫描码,改变显示的颜色后返回...... 那么,下一个 ...

最新文章

  1. 线性回归api初步使用
  2. SQL Loader 的使用详解
  3. 解决Android studio 非法字符的问题
  4. 8家云计算及安全巨头联合成立云安全服务联盟
  5. mysql in 很大 优化_【转】mysql in语句优化
  6. 深度学习之keras (一) 初探
  7. jQuery遍历not的用法
  8. SVN,桌面右击-settings-Icon Overlays 选择 None
  9. 本地连接和音量图标显示
  10. 怎么调节手机的刷新率_价格均在2000元内,5G网络配高刷新率屏幕手机怎么选
  11. Python标准库random用法精要
  12. java编程菜鸟入门01
  13. win7,8走网络打印机出现删除设备和打印机门未关闭的解决方法
  14. 2010年的20款游戏
  15. Python 【第十章】 Django路由
  16. 这就是搜索引擎 (豆瓣).html 1.index 第1章 搜索引擎及其技术架构 1 第2章 网络爬虫 12 第3章 搜索引擎索引 36 第4章 索引压缩 76 第5章 检索模型与搜索排序 99
  17. 数字通信第六章——信道模型和信道容量
  18. ArcCatalog连接PostgreSQL创建SDE库
  19. JDK 内置实用工具:监视、故障排除
  20. 为啥214被塞狗粮的单身汪,520还会被塞狗粮

热门文章

  1. RedisLive监控工具 windows部署笔记
  2. java.io.IOException: No space left on device
  3. C语言 整型变量的输入和输出
  4. 微信6516android,微信6516版本怎么可以分组
  5. linux systemd服务,systemd服务管理
  6. Python两数之和,并返回下标
  7. thinkPHP5.1.9 vendor 第三方库的使用
  8. Appium+python 测试环境搭建
  9. *迭代 分支回收、创建偷懒脚本
  10. css:text-align:justify的用法