码迷,mamicode.com
首页 > 编程语言 > 详细

初识汇编语言(2)

时间:2018-10-14 23:09:33      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:作用   操作   简单的   简单   总线   地址   add   个数   对象   

一,寄存器

1.8086CPU有14个寄存器,其中AX,BX,CX,DX(用来储存数据),CS,IP(用来储存将要执行命令地址),SI,DI,SP,BP(被称为基址和变址寄存器,后面会学到),SS,DS,ES(段寄存器),PSW。

2.其中AX,BX,CX,DX(每个16位的寄存器)都可以分为两个8位的寄存器,例如,AX分为AH,AL两个;存放16位数字时,AH存放高8位,AL存放低8位,AH,AL也可以分别作为储存8位二进制的寄存器。

3,简单的几条命令,move ax,18;

                                  move ax,bx;

           add  ax,18;

          add ax,bx;

其中move,add的两个操作对象都必须位数一致,不能用一下指令:move al,100H(H代表这个数字为16进制);move al,ax; moce ax,al;而且当这4个寄存器在发现需要进位时,例如:

move ax,ffffH;

move bx,1111H;

add ax,bx;此时AX中的值为:1110H,进的一位被溢出舍弃了;

4*CS,IP作用

(1)当CPU的地址总线与内部处理数据不一样时(地址总线>CPU一次性处理的数据的能力),例,8086CPU为16位,但它的地址总线却有20位,这时就需要用两个16位数据来标记20位的物理地址。其中CS作为一个段落,将20位物理地址分成两部分,在使用地址加法器:CS(段地址)X16+IP(偏移地址)=物理地址,例:访问1526CH,CS=1526H,IP=000CH.注意一个段的起始位置必须是16位的倍数。

(2).CPU将CS,IP指向的内容当成指令执行。并且每次在执行完成后,IP将自动会加上指令的长度(字节为单位),再在地址加法器中,使用CS(段地址)X16+IP(偏移地址)=物理地址,依次执行这就完成了指令的连续执行。

5 jmp指令改变CS,IP的值

jmp 段地址:偏移地址     。

 

初识汇编语言(2)

标签:作用   操作   简单的   简单   总线   地址   add   个数   对象   

原文地址:https://www.cnblogs.com/nanjinghuangsheng/p/9788283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!