• 《汇编语言》——王爽 第八章 数据处理的两个基本问题


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

    我们定义的描述性符号: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 寻址方式在结构化数据中的应用

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

  • 相关阅读:
    gdb typeid 详解
    make报错
    期末作业验收
    个人作业——软件工程实践总结作业
    原型设计(结对第一次)
    团队展示(团队)
    第二次作业——个人项目实战(sudoku)
    软件工程实践第一次作业--准备
    C++第一次课堂作业 circle
    第四次作业 计算器第二部分(未完)
  • 原文地址:https://www.cnblogs.com/JasonPeng1/p/12116526.html
Copyright © 2020-2023  润新知