• 汇编语言-[BX]和loop指令


    汇编语言-[BX]和loop指令

    [BX]指令介绍

    mov ax,[bx]

    功能:

    bx为偏移地址,段地址默认为ds。因此,上面指令作用就是将ax中的数据送入内存ds:bx处,即:((ds)*16 + (bx)) = (ax)


    也可以通过下面指令实现上面指令功能:

    mov ax,ds:[bx]
    
    //mov ax,es:[bx]

    通过这种ds:[bx],通过这种方式来获得ds:bx中的内容。同理也可以获得es:[bx]中的内容。

    注:这里的[bx],不可以改为[ax],或者其他的代替。


    loop指令介绍

    mov cx,12H
    s:
       mov dx,es:[bx]
       mov ds:[bx],dx
       inc bx
    loop s
    mov ax,4c00H

    功能:

    通过loop,来完成循环操作。

    下面对参数进行一一讲解:

    • s:标记符,标记符就是其所在的指令的地址。例如上面程序:s就表示mov dx,es:[bx]指令的地址。

    • cx:相当于for循环中的x,每次运行到loop指令时,cx的数值就会 -1 。当cx为零的时候,退出loop循环。

    • loop: 当cpu执行loop的时候,要进行两步操作:

      1. cx = cx - 1
      2. 判断cx中的数值是否为0。不为0则转至标号s所标识的地址处执行(这里的指令是mov dx,es:[bx]),如果为0则执行下一条指令(下一条指令是mov ax,4c00H)


    loop 和 [bx]混合运用

    assume cs:code
    
    code segment
    
        mov ax,20H
        mov ds,ax
        mov bx,0
    
        mov cx,40H
    s:
        mov [bx],bx
        inc bx
    loop s
    
        mov ax,4c00H
        int 21H
    
    code ends
    
    end

    上面代码,实现了向内存0:200~0:23F,依次传送数据0~63(3FH)的功能。

  • 相关阅读:
    规划分类
    java 命名空间
    何为"IOE"、"去IOE"
    vSphere 6.7 新特性 — 基于虚拟化的安全 (VBS)
    RHCE
    VCPU的解释
    VMware vSphere学习整理
    Vmware
    Linux启动
    Linux相关笔记
  • 原文地址:https://www.cnblogs.com/AbeDay/p/5026857.html
Copyright © 2020-2023  润新知