IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 汇编语言实验 寻址方式在结构化数据访问中的应用 -> 正文阅读

[大数据]汇编语言实验 寻址方式在结构化数据访问中的应用

Power idea 公司从 1975 年成立到 1995 年的基本情况如下:

?下面的代码中,已经定义好了这些数据:

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'
;以上是表示 21 年的 21 个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140317,197514
dd
345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上表示 21 年公司总收入的 21 个 dword 型数据
dw 3,7,10,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
;以上是表示 21 年公司雇员人数的 21 个 word 型数据
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends

?

?

编程,将 data 段中的数据按如下格式写入到 table 段中,并计算 21 年中的人均收入 (取整),结果也按照下面的格式保存在 table 段中。

参考代码:

data segment
    ; add your data here!
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示 21 年的 21 个字符串 84bytes 0x0
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140317,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上表示 21 年公司总收入的 21 个 dword 型数据 84bytes 0x54
dw 3,7,10,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
;以上是表示 21 年公司雇员人数的 21 个 word 型数据 42bytes 0xa8
ends
           
table segment
db 21 dup ('year summ ne ??')
table ends

stack segment
    dw   128  dup(0)
ends

code segment  
    assume cs:code, ds:data
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov ax, table
    mov es, ax  
                  
    mov cx, 21;设置循环次数21次
    ;54H为收入起始地址
    ;0A8H为雇员数起始地址
Label:     
    mov bx, 21
    sub bx, cx;记录循环的次数-1
    mov di, bx;备份bx   
    mov si, bx
    shl si, 4H;es的地址偏移量,16×(循环次数-1)   
    shl di, 2H;收入低位地址偏移量
    mov ax, ds:54H[di]
    add di, 2H;收入高位地址偏移量
    mov dx, ds:54H[di]
    ;注意Big-Endian
    mov es:7H[si], dx;收入高位存入表中
    mov es:5H[si], ax;收入低位存入表中
    mov di, bx
    shl di, 1H;人数地址偏移量
    mov bp, ds:0A8H[di];获取人数 
    mov es:0AH[si], bp;人数存入表中
    div bp;计算平均收入
    mov es:0DH[si], ax;平均收入存入表中
    shl di, 1H;年份地址偏移量
    mov dx, ds:[di];获取年份前两位
    mov ax, ds:2H[di];获取年份后两位
    mov es:[si], dx;存入年份前两位
    mov es:2H[si], ax;存入年份后两位    
    
    loop Label
    mov ah, 4CH
    int 21H;结束程序
ends

end start ; set entry point and stop the assembler.

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:51:47  更:2021-10-15 11:52:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:16:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码