zoukankan      html  css  js  c++  java
  • [汇编语言]-第七章 用[bx+idata]的方式进行数组的处理

    1- 转化为大写

    方法一:

     1 assume cs:code,ds:data
     2 data segment
     3     db 'BaSiC'
     4     db 'MinIX'
     5 data ends
     6 code segment
     7 start:    mov ax,data
     8         mov ds,ax
     9         mov bx,0
    10         
    11         mov cx,5
    12     s:    mov al,[bx]
    13         and al,11011111B
    14         mov [bx],al
    15         inc    bx
    16         loop s
    17         
    18         mov cx,5
    19         mov bx,5
    20     s0:    mov al,[bx]
    21         or    al,00100000B
    22         mov    [bx],al
    23         inc bx
    24         loop s0
    25         
    26         mov ax,4c00H
    27         int 21h
    28 code ends
    29 end start

    方法二:

     1 assume cs:code,ds:data
     2 data segment
     3     db 'BaSiC'
     4     db 'MinIX'
     5 data ends
     6 code segment
     7 start:    mov ax,data
     8         mov ds,ax
     9         mov bx,0
    10         
    11         mov cx,5
    12     s:    mov al,[bx]
    13         and al,11011111B
    14         mov [bx],al
    15         
    16         mov al,[5 + bx]
    17         or    al,00100000B
    18         mov    [5 + bx],al
    19         inc bx
    20         loop s
    21         
    22         mov ax,4c00H
    23         int 21h
    24 code ends
    25 end start

    方法三:

     1 assume cs:code,ds:data
     2 data segment
     3     db 'BaSiC'
     4     db 'MinIX'
     5 data ends
     6 code segment
     7 start:    mov ax,data
     8         mov ds,ax
     9         mov bx,0
    10         
    11         mov cx,5
    12     s:    mov al,0[bx]
    13         and al,11011111B
    14         mov [bx],al
    15         
    16         mov al,5[bx]
    17         or    al,00100000B
    18         mov    5[bx],al
    19         inc bx
    20         loop s
    21         
    22         mov ax,4c00H
    23         int 21h
    24 code ends
    25 end start

    C语言编写:

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     char a[5] = "BaSiC";
     6     char b[5] = "MinIX";
     7     
     8     int i = 0;
     9     do
    10     {
    11         a[i] = a[i] & 0xDF; //小->大
    12         b[i] = b[i] | 0x20; //大->小
    13         printf("%c",a[i]);
    14         i++;
    15     }
    16     while (i < 5);
    17     
    18     printf("
    ");
    19     
    20     for(i = 0; i < 5; i++)
    21     {
    22         
    23         printf("%c",b[i]);
    24     }
    25     printf("
    ");
    26     
    27     system("PAUSE");
    28     return 1;
    29 }

    C语言定位方式: a[i], b[i]

    汇编语言定位方式: 0[bx], 5[bx]

    [bx+idata]的方式为高级语言实现数组提供了便利机制

  • 相关阅读:
    CSS进阶-深入理解vertical-align和line-height的关系
    困难的串【转】
    【转】常用 Git 命令清单
    程序员常用等宽字体
    IE的特有属性hasLayout和BFC
    css深入理解之行高line-height
    mysql 索引优化,不走索引的原因
    php解决高并发(文件锁)
    mysql索引详解
    http错误代码
  • 原文地址:https://www.cnblogs.com/galoishelley/p/3566716.html
Copyright © 2011-2022 走看看