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个字节,每一个字符都是一个字节

  • 相关阅读:
    美文:人生如果是十分
    收藏若干敏捷开发的博文充电
    推荐 xiaotie 的开源GIS专题文章索引
    影像融合操作的几种途径
    开源版多用户博客系统
    软件的架构与设计模式之模式的种类介绍
    开源摄影测量与遥感处理软件OSSIM简介
    从面向对象到模式再到真正的面向对象
    MapGuide和MapServer的一些资源
    ArcInfo常用命令整理
  • 原文地址:https://www.cnblogs.com/wz0107/p/5380188.html
Copyright © 2011-2022 走看看