db '1.helloworld '
db '2.apple '
db '3.stevejobs '
db '4.macbook '
将上述内容从第三个数据开始向后三个都变成大写,结果如下:
db '1.HELloworld '
db '2.APPle '
db '3.STEvejobs '
db '4.MACbook '
代码实现:
assume cs:code,ds:data
data segment
db '1.helloworld '
db '2.apple '
db '3.stevejobs '
db '4.macbook '
data ends
stack segment
dw 0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,32
mov ax,data
mov ds,ax
mov es,ax
mov cx,4
mov bx,0
mov si,2
upLetter:
push cx ;压栈保存上一次循环数据
push si
mov cx,3
upRow:
mov dl,ds:[bx+si]
and dl,11011111B
mov es:[bx+si],dl
inc si
loop upRow
pop si ;出栈,逆向弹出
pop cx
add bx,16
loop upLetter
mov ax,4c00h
int 21h
code endsendstart