assume cs:code,ds:data
data segment
db 'BaSiC'
db 'iNfOrMaTiOn'
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov cx,5
s: mov al,[bx]
and al,11011111b
mov [bx],al
inc bx
loop s
mov bx,5
mov cx,11
s0: mov al,[bx]
or al,00100000b
mov [bx],al
inc bx
loop s0
mov ax,4c00h
int 21h
code ends
end start
要点:
需要掌握记住的是and、or的用法。
同时要记得大、小写字母的转换是可以将字母的2进制编码的第5位进行置0与1,就可以完成大小写的转换,无需进行判断。
- [游客] 没问题。 06/11 08:21
- [游客] 哪里有问题,:)指明下.一起研究 06/10 17:22
- [游客] 有点儿问题。 06/10 16:26
- [tomato] 正确。 06/10 15:11
- [lmze2000] 另有点注意的就是,dd是字节型数据,所以在进行循环的时候,用inc bx就可以,inc bx,2是针 06/09 17:39
- [游客] 说的好。继续加油。 06/08 11:06
- [游客] 还是按照书上的格式,写下你的理解和回答吧。 06/08 10:57
- [lmze2000] 同时发现,在程序中初始化栈空间,ss段地址和cs是同一地址。应该是系统在分配可用内存空间的时候,已经 06/06 17:27
- [lmze2000] 在进行调试的时候,发现用d命令查看0:0~0:15处的数据与执行后的不同。在论坛上查找资料及做了几次 06/06 16:14
- [lmze2000] mov cx,__ 改成 sub cx,__ 这样要正确一些, 原题的意思就是要复制程序中mov 06/04 15:32
[ 游客 发表于 2009-06-11 08:21 ]
没问题。