汇编语言之寄存器(内存访问)
2016-09-23 21:13
204 查看
其实那些数据段,代码段,都是人自己定义的,CPU可不会这么想,它执行代码的时候,它只跟着CS:IP走,CS:IP指向哪里,他就认为哪里是代码,并执行它。所以如果想让CPU执行我们放在内存中的代码,那么,请让CS:IP指向他即可。
8086CPU存放是按小端存放的规则来的,即字的高位字节存放在内存的髙地址中,字的低位字节存放在内存的低位地址中。
下面我们来看DS和[address]
DS通常存放的数据的段地址,而[idata]存放一般是偏移量
我们知道若只有偏移量是不会找到数据的,必须还有段地址,在读取数据时,CPU默认会把DS里面的内容当作段地址,所以想要让CPU读取我们给的数据,必须先设置好DS里面的值,(DS里面的值不可以直接传送,所以我们用了一个寄存器间接传送),置于为什么会这样,额这是硬件设计。(段寄存器之间也不允许传送数据)
mov 指令有以下几种形式:
add和sub同mov差不多,都有两个操作数,他们有以下几种形式:
下面说一下数据段,其实就是DS里面的值作为基地址,然后我们给的值作为偏移地址就好了。
比如我们要将32000H里面的数据放到寄存器AX中
我们只要先修改基地址的值。(记住段寄存器不能直接赋值,只能通过中间寄存器咯!)
mov AX,3000H (指令,寄存器书写大小无所谓)
mov DS,AX (先将基地址设置为3000H)
mov AX,[2000H] (偏移地址2000H,默认从ds里面取基地址)
8086CPU存放是按小端存放的规则来的,即字的高位字节存放在内存的髙地址中,字的低位字节存放在内存的低位地址中。
下面我们来看DS和[address]
DS通常存放的数据的段地址,而[idata]存放一般是偏移量
我们知道若只有偏移量是不会找到数据的,必须还有段地址,在读取数据时,CPU默认会把DS里面的内容当作段地址,所以想要让CPU读取我们给的数据,必须先设置好DS里面的值,(DS里面的值不可以直接传送,所以我们用了一个寄存器间接传送),置于为什么会这样,额这是硬件设计。(段寄存器之间也不允许传送数据)
mov 指令有以下几种形式:
add和sub同mov差不多,都有两个操作数,他们有以下几种形式:
下面说一下数据段,其实就是DS里面的值作为基地址,然后我们给的值作为偏移地址就好了。
比如我们要将32000H里面的数据放到寄存器AX中
我们只要先修改基地址的值。(记住段寄存器不能直接赋值,只能通过中间寄存器咯!)
mov AX,3000H (指令,寄存器书写大小无所谓)
mov DS,AX (先将基地址设置为3000H)
mov AX,[2000H] (偏移地址2000H,默认从ds里面取基地址)
相关文章推荐
- 寄存器(内存访问)03 - 零基础入门学习汇编语言15
- 寄存器(内存访问)05 - 零基础入门学习汇编语言17
- 汇编语言寄存器内存访问笔记
- 汇编语言:第三章 寄存器(内存访问)
- 汇编语言02——寄存器(内存访问)
- 寄存器(内存访问)03 - 零基础入门学习汇编语言15
- 寄存器(内存访问)01 - 零基础入门学习汇编语言13
- 汇编语言学习第三章-寄存器(内存访问)
- 汇编语言(王爽) 第3章寄存器(内存访问)
- 王爽汇编语言学习笔记(三)--寄存器(内存访问)
- 寄存器(内存访问)04 - 零基础入门学习汇编语言16
- 读王爽老师汇编语言笔记---寄存器(内存访问)
- 寄存器(内存访问)06 - 零基础入门学习汇编语言18
- 寄存器(内存访问)02 - 零基础入门学习汇编语言14
- 寄存器(内存访问)05 - 零基础入门学习汇编语言17
- 寄存器(内存访问)07 - 零基础入门学习汇编语言19
- 汇编语言笔记03-寄存器(内存访问)
- 【汇编语言/底层开发】3、通过寄存器进行内存访问
- 汇编语言学习笔记(三)寄存器(内存访问)
- 汇编语言复习摘要三——寄存器的内存访问