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
  • 相关阅读:
    移动端前端布局的必看前提
    单词统计
    用户场景分析
    学习进度(九)
    团队项目
    学习进度(二)
    数据可视化
    大二下,学习进度(一)
    求最大子数组的和
    构建之法3
  • 原文地址:https://www.cnblogs.com/luocodes/p/11939780.html
Copyright © 2011-2022 走看看