zoukankan      html  css  js  c++  java
  • 汇编语言(王爽) 第8章数据处理的2个基本问题

    计算机进行数据处理的时候要知道2个基本问题

    1. 要处理的数据放在哪
    2. 要处理的数据多长

    刚开始定义了2个描述性符号备用

    reg和sreg

    reg 表示一个寄存器如 ax,bx,cx,dx,ah.......sp,bp,si,di

    sreg表示一个段寄存器 如 ds,ss,cs,es

    8.1 bx,si,di,bp

    1. 只有这4个寄存器可以放在[]中间和段地址ds或ss搭配进行内存单元寻址
    2. 这4个可以单独使用,也搭配使用,但只有4种组合
    3. [bp]的默认段地址是ss,其他3个是ds

    8.2 数据放在什么地方

    数据放在cpu的寄存器,内存单元,还有个什么端口不知道是个啥

    8.3 数据存放位置的表达

    前面说了数据放在哪里,但这些地方怎么表达才能让计算机看懂呢?

    1 立即数

    前面图的第3行

    在执行前放在cpu的指令缓冲器里面

    2 寄存器

    数据放在寄存器里面,如上图的第2行

    3 段地址(SA)和偏移地址(EA)组成的物理地址代表的内存单元

    上图第一行

    8.4 寻址方式

    就是定位内存单元的方法把,上图

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

    8086CPU可以处理2中长度的数据,byte和word,怎么知道要处理的数据是byte还是word(2个字节)

    1 通过寄存器名指出要处理的数据长度

    下面是字操作

    mov ax,1

    mov bx,ds:[1]

    下面是字节操作

    mov al,1

    mov bh,ds:[1]

    2 没有寄存器用x ptr 指明长度,X=byte or word

    下面是字操作

    mov word ptr ds:[1],1

    inc word ptr ds:[1]

    下面是字节操作

    mov byte ptr ds:[1]

    add byte ptr  ds:[bx],2

    8.6 这里是个寻址的练习

    8.7 div 指令

    1 除数 8 byte or 16byte

    2  除数8位,被除数16位,默认放在ax,al放商,ah放余数

    除数16位,被除数32位,被除数高16位放dx,低16位放ax,结果ax放商,dx放余数

    8.8 dd指令

    定义2个字,也就是4个字节

    8.9 dup复制指令

    用法如下图

    最后是一个大实验题,做了之后有以下

    1 db '1999',''2222'这样定义的不是2个字节,而是8个字节,每一个字符都是一个字节

  • 相关阅读:
    奇数阶魔方问题
    《DSP using MATLAB》示例9.3
    《DSP using MATLAB》示例9.2
    《DSP using MATLAB》示例9.1
    找个目标很重要
    《DSP using MATLAB》示例Example 8.30
    《DSP using MATLAB》示例Example 8.29
    《DSP using MATLAB》示例Example 8.28
    《DSP using MATLAB》示例Example 8.27
    《DSP using MATLAB》示例Example 8.26
  • 原文地址:https://www.cnblogs.com/wz0107/p/5380188.html
Copyright © 2011-2022 走看看