zoukankan      html  css  js  c++  java
  • 《汇编语言》——王爽 第八章 数据处理的两个基本问题

    本章对前面的所有内容是具有总结性的。

    我们定义的描述性符号:reg和sreg

    以后的课程中,我们将使用两个描述性的符号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

    在[....]中,这4个寄存器可以单个出现,或只能以4种组合出现:bx和si,bx和di,bp和si,bp和di

    只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中

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

    所要处理的数据可以在3个地方:CPU内部(寄存器,指令缓冲器),内存,端口(端口将在后面的课程中进行讨论)

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

    1 立即数(idata)

    2 寄存器

    3 段地址(SA)和偏移地址(EA)

    指令要处理的数据在内存中,在汇编指令中可用[x]的格式给出EA,SA在某个段寄存器中。

    8.4 寻址方式

    当数据存放在内存中时候,我们可以用多种方式来给定这个内存单元的偏移地址,这种定位内存单元的方法一般称为寻址方式。

    包括:直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。(见书)

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

    1 通过寄存器名指明要处理的数据的尺寸

    2 在没有寄存器名存在的情况下,用操作符X ptr 指明内存单元的长度,X在汇编指令中可以为word 或byte

    在没有寄存器参与的内存单元访问指令中,用word ptr 或byte ptr 显性地指明所要访问的内存单元的长度是很有必要的。否则CPU得知所要访问的单元是字单元,还是字节单元。

    8.6 寻址方式的综合应用

    8.7 div指令

    除法指令。

    具体见书

    8.8 伪指令 dd

    前面我们用db和dw定义字节型数据和字型数据。dd是用来定义dword(double word,双字)型数据的。

    8.9 dup

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

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

    注意,这个程序是目前位置最复杂的程序,它几乎用到了我们以前学过的所有知识和编程技巧。所以,这个程序是对我们从前学习的最好的实践总结,请认真完成。

  • 相关阅读:
    设计模式学习--面向对象的5条设计原则之单一职责原则--SRP
    设计模式学习--面向对象的5条设计原则(转)
    oracle 存储过程创建报错 Procedure created with compilation errors
    查看临时表空间占用最多的用户与SQL
    查看表空间文件以及利用率、修改、删除表空间文件大小
    aliyun阿里云alibabaMaven仓库地址——加速你的maven构建
    快速配置java环境变量
    oracle 月份中日的值必须介于 1 和当月最后一日之间
    Oracle 修改dmp的表空间
    oracle 空表导出dmp会报错
  • 原文地址:https://www.cnblogs.com/JasonPeng1/p/12116526.html
Copyright © 2011-2022 走看看