• 汇编实验第六到八章总结


    第六章

    一(1) 代码和数据在同一个段内程序框架


    (2) 伪指令end用法小结

    二.dw=define word 即使用dw定义字型数据(数据之间以逗号分隔)dw 既可定义数据,也可以说用它开辟内存空间

    db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1

    dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2

    dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4

    三.将数据、代码、栈放在不同的段中,可以使程序结构清晰易懂,对于8086而言,可以使用多个栈,解决长度超64kb的限制问题

    访问段中的数据,通过地址(段地址和偏移地址),段名即代表一个标号,代表段地址。

    用伪指令 assume 将 cs、ds、ss 分别和 code、data、stack 段相连之后,CPU 也没并没有将对应的段和段寄存器相连接,因为 assume 只是伪指令

    四.① 怎么找一段安全、可用的内存空间?

    在源程序中预留所需空间,

    汇编时由系统分配

    ② 内存空间找到后,如何处理才能当作栈使用?

    在源程序中设置sssp

    ss:sp存放初始栈顶位置

    第七章

    一:and和or指令。

      and指令:逻辑与指令,按位进行与运算。通过该指令可将操作对象的相应位设为0,其他位不变。

      or指令:逻辑或指令,按位进行或运算。通过该指令可将操作系统的相应位设为1.

    二:ASCII码。一种编码方案,是在计算机系统中通常被采用的的,所谓编码方案,就是一套规则,它约定了用什么样的信息来表示现实对象。

      一个文本编辑过程中,就包含着按照ASCII编码规则进行的编码和解码。

    三:以字符形式给出的数据,用‘......’的方式知名数据是以字符的形式给出的。编译器将它们转化为相应的ASCII码。

    四:大小写转换。小写字母的ASCII码值比大写字母的ASCII码值大20H。

    五:【bx+idata】表示一个内存单元,它的偏移地址为(bx)+idata(bx中的数值加上idata)

    六:si和di是8086CPU中和bx功能相近的寄存器,si和di不能分成两个8位寄存器来使用。

      【bx+si】和【bx+di】的含义相似,表示一个内存单元,它的编译地址为(bx)+(si)即bx中的数值加上si中的数值。

     

     第八章

    1、汇编指令中操作数类型

    2、在8086中,可用于表示内存偏移地址的寄存器只有:bx,si,di,bp

    1)这些寄存器可以单个出现在[ ]中,也可以以特定组合方式出现

    2)使用bx,si,di表示偏移地址时,默认段地址在ds中,可以加前缀es,cs,ss

    3)使用bp表示偏移地址时,默认段地址在ss中,可以加前缀ds,es,cs

    3、把内存单元ds:[0]作为字节单元还是字单元,依赖于另一个操作数是8位还是16位

    1)mov byte ptr [0],5:5作为字节数据送到ds:[0]对应的字节单元

    2)mov word ptr [0],5:5作为字数据送到ds:[0]对应的字单元

    4.div指令

    div是除法指令,使用div作除法的时候:
    除数:8位或16位,在寄存器或内存单元中
    被除数:(默认)放在AX 或 DX和AX中
    结果:运算        8位           16位
                商          AL              AX
               余数        AH               DX

    div指令格式:
    div reg
    div 内存单元

    5.用db和dw定义字节型数据和字型数据。
    dd是用来定义dword (double word双字)型数据的。

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

  • 相关阅读:
    编码导致 html和aspx 样式差异,变形
    Recommand of the Day:Names in English
    NSBundle常用方法及解释
    在K8S 中部署 Spring Boot 应用,爽!
    如果抛开 Spring,如何自己实现 AOP?面试必问。。。
    为什么阿里强制 boolean 类型变量不能使用 is 开头?
    CTO 说禁用 Lombok,看我怼死他。。
    面试官:什么是 YAML?和 Spring Boot 有什么关系?
    面试官:线程池多余的线程是如何回收的?
    JetBrains 发布下一代 IDE,无比轻量,几秒就能启动干活,IDEA 可以扔了。。
  • 原文地址:https://www.cnblogs.com/jasonIL/p/10162355.html
Copyright © 2020-2023  润新知