• 8.数据处理的两个基本问题


    1.两个基本问题:
    (1)处理的数据在什么地方?
    (2)处理的数据有多长?
    2.寄存器集合(Reg):ax,bx,cx,dx,al,ah,bl,bh,cl,ch,dl,dh,sp,bp,di,si;
      段寄存器集合(sReg):cs,ds,ss,es;
    3.几种错误的指令:
    (1)mov ax,[cx]
    (2)mov ax,[dx]
    (3)mov ax,[dx]
    (4)mov ax,[ds]
    (5)mov ax,[bp+bx]
    (6)mov ax,[si+di]
    4.处理可分为:读取、运算、写入,在及其指令这一层来讲,它并不关心所要处理的数据是多少,而关心指令执行前的那一刻,它将要处理数据所在的位置
    5.立即数:对于直接包含着机器指令中的数据,比如:mov ax,1,1就是一个立即数,执行前在CPU指令缓冲器中。
    6.通过寄存器名指明要处理的数据的尺寸。如:ax是16bit=2Byte,al是8bit=1Byte
    7.可以用操作符X ptr指明内存单元长度,X在汇编指令中可以是word或byte。比如:mov word ptr ds:[0],1
    8.div是除法指令:
    (1)除数:有8位和16位两种,在一个寄存器(reg)或内存单元中。
    (2)被除数:默认放在AX或AX和DX中。如果除数是8位,被除数则为16位,默认在AX中存放;如果除数是16位,被除数则为32位,低16位放在AX中,高16位放在DX中。
    (3)结果:如果除数是8位,则商存在AL中,余数存在AH中;如果除数是16位,则商存在AX中,余数存在DX中
    (4)格式如下
    div reg
    div 内存单元
    (5)举例
    div byte ptr ds:[0]
    含义:(al)=(ax)/((ds)*16+0))的商
         (ah)=(ax)/((ds)*16+0)的余数
    div word ptr es:[0]
    含义: (ax)=[(dx)*100000H+(ax)]/((es)*16+0)的商
          (dx)=[(dx)*100000H+(ax)]/((es)*16+0)的余数
    div byte ptr [bx+si+8]
    含义:(al)=(ax)/((ds)*16+(bx)+(si)+8)的商
           (ah)=(ax)/((ds)*16+(bx)+(si)+8)的余数
    div word ptr [bx+si+8]
    含义: (ax)=[(dx)*10000H+(ax)]/((ds)*16+(bx)+(si)+8)的商
          (dx)=[(dx)*10000H+(ax)]/((ds)*16+(bx)+(si)+8)的余数
    9.db、dw、dd分别定义字节行数据、字行数据和双字数据。
    10.dup是一个操作符,它是和db、dw、dd等数据定义伪指令配合使用的,用来进行数据重复
    格式如下:
    db 重复的次数 dup (重复的字节型数据)
    举例如下:
    db 3 dup (0,1)
    定义了6个字节,他们是0、1、0、1、0、1,相当于db 0,1,0,1,0,1
  • 相关阅读:
    Django:RestFramework之-------视图
    Django:RestFramework之-------分页
    Django:RestFramework之-------序列化器
    Django:RestFramework之-------解析器
    Django:RestFramework之-------认证
    【WCF--初入江湖】02 WCF契约
    【WCF--初入江湖】01 WCF编程概述
    【WCF--初入江湖】目录
    【MongoDb--初入江湖】windows下安装MongoDb
    【Asp.Net-- 杂七杂八】的代码
  • 原文地址:https://www.cnblogs.com/zxj159/p/2811395.html
Copyright © 2020-2023  润新知