mov ax,1000h
mov ds,ax
mov bx,10h
mov ax,[bx+ida] ; ida 为一个数 表示(bx)+ida ;(ax)=((ds)×16+(bx)+ida)
用此方法 进行数组处理:
一个 用 and or 指令完成的大小写转换的程序:
assume cs:codesg ,ds:datasg
datasg segment
db ‘BaSiC'
db 'MinIX'
datasg ends
codesg segment
start:
codesg ends
end start
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,5
s: mov al,bx ; 定位第一个字符串的字符
and al,11011111b
mov [bx],al
mov al,[5+bx] ;定位第2个字符串的字符
or al,00100000b
mov [5+bx],al
inc bx
loop s
与之对应的c语言程序
char a[5]="BaSiC";
char b[5] = "MinIX";
mian()
{
int i=0;
do{
a[i]=a[i]&0xDF;
b[i] = b[i] | 0x20;
i++;
}
while(i<5);
}