您的位置:首页 > 其它

汇编语言-偏移地址综合应用-双重循环实现

2017-11-20 21:49 323 查看

要求:

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 ends
end start


结果

原内容



最后结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: