[bx+idata]的含义
-
[bx+idata]表示一个内存单元g它的偏移地址为(bx)+idata ( bx中的数值加上idata )。
-
mov ax,[bx+200]/ mov ax,[200+bx]的含义
- 将一个内存单元的内容送入ax
- 这个内存单元的长度为2字节(字单元),存放一个字
- 内存单元的段地址在ds中,偏移地址为200加上bx中的数值
-
指令mov ax,[bx+200]的其他写法(常用)
- mov ax,[200+bx]
- mov ax,200[bx]
- mov ax,[bx].200
-
问题:在codesg中填写代码,将datasg中定义的
- 第一个字符串转化为大写
- 第二个字符串转化为小写。
assume cs:codesg,ds:datasg
datasg segment
db'RaSiC'
db'MinlX'
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov bx,O
mov cx,5
s: mov al,[bxl
and al,11011111b
mov [bx],al
mov al,[5+bx]
or al,00100000b
mov [5+bx],al
inc bx
loop s
codesg ends
end start
用C语言表示
char a[5]="BaSiC";
char b[5]="MinlX";
main(){
int i;
i=O;
do{
a[i]=a[i]&OxDF;
b[i]=b[i] [Ox20;
i++;
}
while(i<5);}