本篇文章完成实验6内容,主要是运用灵活的地址定位方式:[bx+si]的使用
编程练习5(7.10):将datasg段每行的单词转换成大写
assume cs:codesg,ds:codesg,ss:stacksg
datasg segment
db 'file '
db 'file '
db 'file '
db 'file '
datasg ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,16 ;初始化栈空间
mov ax,datasg ;初始化数据段
mov ds,ax
mov bx,0
mov cx,4 ;控制外层循环
s0: push cx
mov si,0
mov cx,4 ;控制内层循环
;分析:需要两个变量控制双层循环,常量3定位列、
s:
mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
执行前:
执行后: