初识汇编语言

Posted nanjinghuangsheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识汇编语言相关的知识,希望对你有一定的参考价值。

一,寄存器

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 段地址:偏移地址     。

 

以上是关于初识汇编语言的主要内容,如果未能解决你的问题,请参考以下文章

我的汇编之路之初识汇编

初识JAVA

第六节,初识python和字符编码

初识R语言

python- 初识python

初识Python