zoukankan      html  css  js  c++  java
  • 二重循环

    汇编实现二重循环有3种方法:

    1.使用寄存器存储CX

    ;将data段中的每个单词改为大写字母
    assume cs:code,ds:data
    data segment
        db 'ibm             ';可看作4行1列的二维数组
        db 'dec             '
        db 'dos             '
        db 'vax             '
    data ends
    code segment
    start:
        mov ax,data
        mov ds,ax
        mov cx,4
        mov bx,0
        s:
            mov dx,cx ;用寄存器存储cx
            mov si,0
           mov cx,3
        s1:
            mov al,[bx+si]
            and al,11011111b
            mov [bx+si],al
            inc si
            loop s1
        add bx,16
        mov cx,dx ;恢复外循环的cx
        loop s
        mov ax,4c00h
        int 21h
    
    code ends
    end start

    2.使用内存单元存储CX

    ;将data段中的每个单词改为大写字母
    assume cs:code,ds:data
    data segment
        db 'ibm             ';可看作4行1列的二维数组
        db 'dec             '
        db 'dos             '
        db 'vax             '
        dw 0
    data ends
    code segment
    start:
        mov ax,data
        mov ds,ax
        mov cx,4
        mov bx,0
        s:
            mov ds:[40h],cx
            mov si,0
           mov cx,3
        s1:
            mov al,[bx+si]
            and al,11011111b
            mov [bx+si],al
            inc si
            loop s1
        add bx,16
        mov cx,ds:[40h]
        loop s
        mov ax,4c00h
        int 21h
    
    code ends
    end start

    3.使用栈段存储CX

    ;将data段中的每个单词改为大写字母
    assume cs:code,ds:data
    data segment
        db 'ibm             ';可看作4行1列的二维数组
        db 'dec             '
        db 'dos             '
        db 'vax             '
    data ends
    
    stack segment
        dw 0,0,0,0,0,0,0,0
    stack ends
    code segment
    start:
        mov ax,data
        mov ds,ax
        mov cx,4
        mov bx,0
        s:
            push cx
            mov si,0
           mov cx,3
        s1:
            mov al,[bx+si]
            and al,11011111b
            mov [bx+si],al
            inc si
            loop s1
        add bx,16
        pop cx
        loop s
        mov ax,4c00h
        int 21h
    
    code ends
    end start
  • 相关阅读:
    让svn自动更新代码注释中的版本号
    前端开发利器F5
    当inlineblock和textindent遇到IE6,IE7
    DSL与函数式编程
    [译]当Node.js遇上WebMatrix 2
    《大道至简》的读后感
    深度学习之卷积神经网络之一
    ORACLE TRUNC()函数
    oracle rownum
    ORACLE 忽略已有重复值 创建唯一约束
  • 原文地址:https://www.cnblogs.com/luocodes/p/11939780.html
Copyright © 2011-2022 走看看