自学王爽老师《汇编语言》笔记——第8章 数据处理两个基本问题

第8章 数据处理的两个基本问题

为了描述的简洁,约定使用reg来表示一个寄存器,用sreg来表示一个段寄存器。

  • reg集合:ax, bx, cx, dx, ah, al, bh, bl, ch, cl, dh, dl, sp, bp, si, di;
  • sreg集合:ds, ss, cs, es。

8.1 bx、si、di和bp

  • 在8086CPU中,只有这四个寄存器可以用在 “[...]” 中来进行内存单元的寻址。
  • 这四种指令若组合出现只能有以下四种组合:
    1. bx 和 si;
    2. bx 和 di;
    3. bp 和 si;
    4. bp 和 di。
  • 只要在 [...] 中使用寄存器 bp,而指令中没有显性给出段地址,段地址就默认在 ss 中。

8.2 机器指令处理的数据在什么地方

  • 绝大部分机器指令都是进行数据处理的指令。
  • 处理大致可以分为三类:读取、写入、运算
  • 从机器指令层面讲,并不关心数据的值是多少,而关心指令执行前一刻,他将要处理的数据所在的位置。
  • 指令执行前数据可以在三个地方:CPU内部、内存、端口

8.3 汇编语言中数据位置的表达

汇编语言用三个概念来表达数据的位置:

  1. 立即数(idata):直接包含在机器指令中的数据。
  2. 寄存器
  3. 段地址(SA)和偏移地址(EA)

8.4 寻址方式

8086CPU的寻址方式总结:

图片说明

8.5 指令要处理的数据有多长

指令如何判断进行的是字操作还是字节操作?

  1. 通过寄存器名指明要处理的数据尺寸。
  2. 在没有寄存器名情况下,用操作符 X ptr 指明内存单元的长度,X 的可选值为 wordbyte
    • 例如:mov byte ptr ds:[0],1
  3. 有些指令默认了访问的是字单元还是字节单元。
    • 例如:push 指令只进行字操作。

8.6 寻址方式的综合应用

  • 8086CPU提供了 [bx + si + idata] 的寻址方式为结构化数据的处理提供了方便。
  • 用 bx 定位结构体,用 idata 定位结构体中的某一个数据项,用 si 定位数据项中的每个元素。

8.7 div指令

div是除法指令,使用时应注意以下问题:

  • 除数:有8位和16位两种,在一个reg或内存单元中。
  • 被除数:默认存放在AX 或 DX和AX中。
    • 除数8位,被除数16位:在AX中存放
    • 除数16位,被除数32位,在DX和AX中存放,其中DX存放高16位
  • 结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。
  • 格式如下:
    • div reg
    • div 内存单元
除数位数 被除数 除数 余数
8位 AX reg或内存单元 AL AH
16位 DX(高16位)AX(低16位) reg或内存单元 AX DX

8.8 伪指令 dd

dd 是用来定义dword(double word)型数据的。

8.9 dup

  • dup 是一个操作符,在汇编语言中同 db、dw、dd 等一样,也是由编译器识别处理的符号。
  • 它和 db、dw、dd 等数据定义伪指令配合使用,用来进行数据的重复。
  • 用法:
    • db 重复的次数 dup (重复的字节型数据)
    • dw 重复的次数 dup (重复的字型数据)
    • dd 重复的次数 dup (重复的双字型数据)

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

assume cs:codesg, ss:stacksg

datasg segment
    db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982'
    db '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990'
    db '1991', '1992', '1993', '1994', '1995'
    ;以上是表示21年的21个字符串
    dd 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
    dd 345980, 590827, 803530, 1183000, 1843000, 2759000, 3753000, 4649000, 5937000
    ;以上是表示21年公司总收入的21个dword型数据
    dw 3, 7, 9, 13, 28, 38, 130, 220, 476, 778, 1001, 1442
    dw 2258, 2793, 4037, 5635, 8226, 11542, 14430, 15257, 17800
    ;以上是表示21年公司雇员人数的21个word型数据
datasg ends

table segment
               ;0123456789ABCDEF
    db 21 dup ('year summ ne ?? ')
table ends

stacksg segment
    db 16 dup(0)
stacksg ends

codesg segment
start:  mov ax,stacksg
        mov ss,ax
        mov sp,16

        mov ax,datasg
        mov ds,ax

        mov ax,table
        mov es,ax

        mov si,0    ;ds:[si]
        mov di,84   ;ds:[di]
        mov bx,168  ;ds:[bx]
        mov bp,0    ;es:[bp]

        mov cx,21
fiTab:  push ds:[si]
        pop es:[bp]
        push ds:[si + 2]
        pop es:[bp + 2]

        mov ax,ds:[di]
        mov dx,ds:[di + 2]
        mov es:[bp + 5],ax
        mov es:[bp + 7],dx

        push ds:[bx]
        pop es:[bp + 0ah]

        div word ptr ds:[bx]

        mov es:[bp + 0dh],ax

        add si,4
        add di,4
        add bx,2
        add bp,16
        loop fiTab

        mov ax,4c00h
        int 21h
codesg ends

end start

实现了统计 Power idea 公司从1975年起21年的人均收入。

#汇编语言##自学##读书笔记#
全部评论
感谢王爽老师分享的《汇编语言》笔记
点赞
送花
回复
分享
发布于 2022-08-27 12:25 河南

相关推荐

整体时间线:2月末力扣从零开始。3月初刷题成瘾,中旬陆续开面开杀,被机试折磨,下旬纠结日常offer选择。4月入职淘天,从硬landing到上手业务快乐融入5月平静美好,顺利到我觉得直接转正是最佳选择,月底转暑期流程被hr直接挂,主管诱骗能转正,万幸蚂蚁暑期流程没拒掉,压哨发意向,手里也还有个腾讯offer兜底,毁约腾讯暑期到此结束。==============================一些感悟:永远保留后手,先拿了阿里国际日常,拿到网易伏羲offer之后才拒绝意向,中间难免要催hr尽量开在同一时间,后续等淘天oc的时候立马拒了网易意向。不会让手里超过2个offer,但是也不会在未确定的时候就拒掉到手的。在淘天的时候师兄主管都保证能转正别担心,甚至主管拉我进内部群一起团建,但是始终把腾讯offer抓在手里,也给了我撕破脸之后和主管谈判的底气。蚂蚁一面二面间隔一个半月,时不时反向保温一下面试官又没拒掉流程,真是我最明智的选择。==============================实习体验:研一在鹅厂AI Lab实习打杂纯快乐的,自己包装一下也是有产出的。遇到的所有人都很温和有礼貌,整体不卷年纪偏大,公司关怀好,不考虑城市的话应该会是第一选择。淘天业务组非常业务,技术不容易提升但是容易有产出,整体强度能承受分到的活也不多还挺核心的,师兄还是很nice的,往年转正待遇也挺好,小组整体年龄结构有中有小没老人,晋升空间不错。拒掉的offer里面,同花顺是做大模型部署加速的,给钱少太卷拒了;阿里国际是研究型实习生随便面的感觉面试官技术没有太懂;网易伏羲是llm+智能npc其实很有搞头,还是贪图大厂title拒了;腾讯这个最可惜,agent+游戏ai,而且在大部门实习过可以丝滑landing,腾讯招聘经常能看到校招社招广告,应该是团队扩张期,考虑到城市因素忍痛拒绝,释放一个hc给大家。==============================彩蛋:想看看牛u会做什么选择,感觉人生到了这个时间点,每个决策都会影响很大,已知和女友都是浙江人,她稳定杭州工作,计划后续杭州定居结婚。 #暑期实习# #腾讯# #阿里# #蚂蚁# #大模型# #淘天#
投递蚂蚁集团等公司10个岗位
点赞 评论 收藏
转发
2 收藏 评论
分享
牛客网
牛客企业服务