当前位置: 首页 > 汇编 > 正文

汇编语言基础3

                                                                                           汇编语言基础3

[BX] 和 loop 指令:

        ds:段寄存器

首先例如:

mov ax,[0]   

                这句的意思是把cx:[0000]的内容移动到寄存器ax中。

                [bx]同样也表示一个内存单元,它的偏移地址在bx处

               mov ax,[bx]

       将一个内存单元的内容送入AX,这个内存单元的长度为2字节(字单元),存放一个字节,偏移地址在bx中,段地址在ds.这样写会方便一点。

mov ax.[bx]

      功能:BX中存放的数据作为一个偏移地址EA,段地址SA默认在DS 中,将SA:EA处的数据送入AX 中。即:(AX)=((DS)*16+(BX));


mov [bx],ax

功能:BX中存放的数据作为一个偏移地址EA,段地址SA 默认在DS中,将AX中的数据送入内存SA:EA处。即:((DS)*16 + (AX))


注意新增指令:

inc BX 

                功能:给BX 增加1

                exp:

 mov  bx,1

     inc     bx

                然后BX = 2

LOOP    指令:

这条指令就是表示循环的指令,其中循环计数器就是CX 寄存器,每次循环CX寄存器就减一。如果不为0那么就进行调转,执行循环语句,如果为0就不进行循环执行下一步的指令。

其中S来指示循环的语句

例如:

用加法计算123*236,将结果存AX中:

assume  cs:code

code segment

mov ax,0

                        mov cx,123

             S:    add   ax,236

loop s

mov ax,4c00h

int 21h

code ends

end


版权声明:本文为博主原创文章,未经博主允许不得转载。

]]>

本文固定链接: http://zmrlinux.com/2015/06/11/%e6%b1%87%e7%bc%96%e8%af%ad%e8%a8%80%e5%9f%ba%e7%a1%803/ | Kernel & Me

该日志由 root 于2015年06月11日发表在 汇编 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 汇编语言基础3 | Kernel & Me