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("\n"); 19 20 for(i = 0; i < 5; i++) 21 { 22 23 printf("%c",b[i]); 24 } 25 printf("\n"); 26 27 system("PAUSE"); 28 return 1; 29 }
C语言定位方式: a[i], b[i]
汇编语言定位方式: 0[bx], 5[bx]
[bx+idata]的方式为高级语言实现数组提供了便利机制