zoukankan      html  css  js  c++  java
  • 汇编笔记_第三章


    title: 汇编笔记_第三章
    date: 2018-12-26 12:29:17
    tags:

    • 笔记
      categories:
    • 汇编语言

    寄存器内存访问

    内存器中字的存储

    • 大端方式:高位字节排放在内存的低地址端,低位字节存放在高地址端;(现在见到的都是大端方式)
    • 小端方式:低位字节存放在内存的低地址端,高位字节存放在高地址端;

    DS和[address]

    • 执行指令时,8086CPU自动取DS中的数据作为内存单元的段地址;
    • 不能直接将数据送到DS中,必须 数据->一般的寄存器->段寄存器

    例如:

    mov bx,1000H

    mov ds,bx

    mov [0],al

    字的传送

    • 8086CPU是16位结构,有16根数据线,一次可以传送16位的数据,也就是一次可以传送一个字;(P50的问题3.3、3.4)

    mov、add、sub指令

    mov指令的几种形式:

    mov 寄存器,数据
    
    mov 寄存器,寄存器
    
    mov 寄存器,内存单元
    
    mov 内存单元,寄存器
    
    mov 段寄存器,寄存器
    

    • 8086CPU中的入栈和出栈操作都是以 为单位的;
    • 任意时刻,SS:SP指向栈顶元素;

    push指令的执行过程

    push ax

    • SP = SP - 2;
    • 将ax中的内容送入到SS:SP指向的内存单元处,SS:SP此时指向新栈顶;
    • 栈空时,SS:SP指向栈空间最高地址单元的下一个单元;

    pop指令的执行过程

    pop ax

    • 将SS:SP指向的内存单元出的数据送入ax中;
    • SP = SP + 2;

    栈顶超界的问题

    • 栈满的时候再使用push指令入栈栈空的时候再使用pop指令出栈 都会发生栈顶超界问题;
    • 8086CPU不保证对栈的操作不会超界;

    push、pop指令

    • push/pop 寄存器、段寄存器、内存单元

    • 栈可以保存寄存器的数据,恢复时出栈的顺序要和入栈的顺序相反;

    • 栈可以向一个地址处的内存单元写入数据,先设置ss,sp的值然后push;

    • 栈顶sp的变化范围为0~FFFFH;

    段地综述

    • 对于数据段,段地址存放在DS中
    • 对于代码段,段地址存放在CS,段中的第一条指令的偏移地址在IP中;
    • 对于栈段,段地址存放在SS中,栈顶的偏移地址存放在SP中;
      https://www.cnblogs.com/31415926535x/p/10178927.html
  • 相关阅读:
    sharepoint_study_10
    sharepoint_study_9
    sharepoint_study_8
    需要经常读的文章(长期更新)
    sharepoint_study_7
    sharepoint_study_目录学习笔记(长期更新)
    windows_study_2
    sharepoint_study_6
    sharepoint_study_5
    sharepoint_study_4
  • 原文地址:https://www.cnblogs.com/31415926535x/p/10178927.html
Copyright © 2011-2022 走看看