基础-6

作者: 秣崖 | 来源:发表于2017-01-20 11:23 被阅读0次

更多的寻址方式

[bx+idata]这种方式为数组的实现提供了机制,也可以通过此来优化连续的存储空间的操作

[bx+si]两种寄存器的值相加进行寻址

[bx+si+idata]//寄存器相加并且加上常数

adt : 能在【】下进行寻址的寄存器只有:bx,si,di,bp(详情下看)

2,要注意不能在一句话中同时使用两个【】寻址,因为无法知道取值数据大小。

3,延续以上,若是出现了无寄存器的情况,如直接向内存地址上写IDATA,就要手动添加数据长度描述符:

mov word ptr ds:[0],0  //注意源码中不能直接用[idata]进行寻值

mov byte ptr  ds:[0],1

4,PUSH,POP 默认是对字操作,无法指定。

SI和DI

和一般的储值寄存器作用一致,16位,但是不能分为两个8位用。

循环嵌套:

通过栈的运用,将上层cx压栈,在内层循环完成时,再取栈,可以继续外循环。

一些标号:

reg:用来表示寄存器

ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di.

sreg:用来表示段寄存器

ds,ss,cs,es

bx,si,di,bp

只有这四个寄存器可以用在【】中进行寻址,其中bx可以分为bl,bh两个寄存器单独使用,si和di只能用于接收16位数据,不能分为上下8位,bp寄存器使用【】寻址时,默认以ss段地址为始地址寻址。

adt: 在源代码【】中不能同时出现bx和bp,前者以ds为段地址,后者以ss为段地址,显式指明段地址也不行。

所有【】寻址方式

形如结构体的寻址更改

汇编中[bx+si+idata]的另一种方式 [bx].idata[si] 形如C中结构体型的修改 struct.data[x],其中bx指定了结构体的地址,idata指明变量的开始地址,si指明变量内部的偏移地址。

DIV指令

DIV除法指令:

被除数:默认是在AX(当除数为8位时,被除数为AX 共16位),或DX和AX中(当除数为16位时,被除数为DX=高16位,AX=低16位  共32位。)

除数:有8位和16位两种,在一个reg或内存单元中。

结果:如果除数为8位,则AL存储商,AH存储余数。如果除数为16位,AX存储商,DX存储余数。

所以感觉除数位数主导着其它使用规则。

references: 《汇编语言》王爽

相关文章

  • 基础-6

    更多的寻址方式 [bx+idata]这种方式为数组的实现提供了机制,也可以通过此来优化连续的存储空间的操作[bx+...

  • 2018-05-28

    网络基础 ipv6

  • linux基础操作

    基础操作Centos6

  • ES6基础语法

    ES6基础语法

  • 新品第一周之基础承诺—学习笔记 45

    第一周:新品起步期——基础权重 一、基础的承诺——打标 打标——连6个标都没有,最基础的权重,拉后腿——超过6个标...

  • JavaScript进阶

    一、ES6基础 1. ECMAScript 6 简介 ECMAScript(ES6) 是JavaScript语言的...

  • 开课吧大数据高级开发工程师 百度网盘分享

    课程大纲: java的基础课程(额外提供)阶段2:linux基础阶段3:java基础阶段4.5:mysql阶段6:...

  • Linux 基础6

    操作系统及基本命令 ls 命令 1)-l: 长格式 文件类型:-:普通文件(f)d: 目录文件b:块设备文件(bl...

  • JS基础6

    正则表达式 定义:它是一个描述字符模式的对象。Javascript的ReExp类表示正则表达式,String 和R...

  • Java基础6

    等待唤醒机制---->生产消费问题 /** * * @author Jinyan * */ class Resou...

网友评论

      本文标题:基础-6

      本文链接:https://www.haomeiwen.com/subject/wcvibttx.html