标志寄存器三
例题:有四个字符串,把每一个字符串的字母大写
assume cs:codesg,ds:datasg
datasg segment
db 'ibm.............'
db 'dec.............'
db 'dos.............'
db 'var...............'
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov bx,0
mov cx,4
s0:mov dx,cx
mov si,0
mov cx,3
s:mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
add bx,16
mov cx,dx
loop s0
codesg ends
end start
解析:
注意:loop s命令是程序从s处到loop s处执行cx遍。
所以说这个程序就是s0-(loop s0)处执行4遍,s-(loop s)处执行3遍
bx代表每一行的偏移地址,si代表每一列的偏移地址
2.第二种做法:运用栈
assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
db 'ibm.............'
db 'dec.............'
db 'dos.............'
db 'var...............'
datasg ends
stacksg segment
dw 0,0,0,0,0,0,0,0一个数据占一个字,可按需增加或减小
stacksgends
【标志寄存器三】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,3
s:mov al,[bx+si]
and al,110111111b
mov [bx+si],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00H
int 21h
codesg ends
end start
推荐阅读
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 2018-02-06第三天|2018-02-06第三天 不能再了,反思到位就差改变
- 第三节|第三节 快乐和幸福(12)
- android第三方框架(五)ButterKnife
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 三十年后的广场舞大爷
- 一百二十三夜,请嫁给我
- 2018年9月5日,星期三,天气晴
- 即将到手三百万