|
主题 : : -----------7.9------------有两种方式改变大写字母 [待解决] |
回复[ 2次 ]
点击[ 531次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2013-05-05 10:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06 |
1.先把第一行前四个字母全改大写,再改第二行的四个字母,的源程序:
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov cx,4
mov bx,0
s: push cx
mov cx,4
mov si,0
s0: mov al,[bx+3+si]
and al,11011111b
mov [bx+3+si],al
inc si ;add si,10H 如果换成 add si,10H则下面的 add bx,10H要换成inc bx
loop s0
pop cx
add bx,10H ;inc bx ;关键语句,如果少了这一句,将变成每个单词的第一个字母变大写
loop s
mov ax,4c00h
int 21h
codesg ends
end start
2.先把单词每列的第一个字母先改成大写,再开始第二列的每个字母
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov cx,4
mov bx,0
s: push cx
mov cx,4
mov si,0
s0: mov al,[bx+3+si]
and al,11011111b
mov [bx+3+si],al
add si,10H
loop s0
pop cx
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends
end start
之前什么都没看 自己 编完了 看起来感觉不一样,然后就发现了 | | |
|
|
|
|
[第1楼]
[ 回复时间:2013-05-05 10:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06 |
一晚上把第七章学完了-.- 今晚要进行第八章了,然后就去版块8区了, 7区我就不再来看了 , | | |
|
|
|
|
[第2楼]
[ 回复时间:2015-04-04 00:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2015-02-17 23:21 |
7.9 再加一种方法。
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov bx,0
mov dx,1101111111011111b
mov cx,4
s: and 3[bx],dx
and 5[bx],dx
add bx,10h
loop s
mov ax,4c00h
int 21h
codesg ends
end start | | |
|