xiaosawanjava 发表于 2014-5-8 21:47:09

将每个单词的前4个字母变为大写.[个人成长之印记]

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 ax,stacksg
                mov ss,ax
                mov sp,16
               
                ;初始化
                mov bx,0        ;行偏移地址
                mov cx,4        ;行数
                mov si,0        ;列偏移地址
               
                s:
                        push cx                ;保存外层循环变量的值,以免在里面被修改
                       
                        mov si,0       
                        mov cx,4        ;每一行只需要修改4列
                        s2:
                                mov al,2                ;每个字符串第2个是单词的开始,从0开始数的
                                and al,11011111b        ;转换为大写
                                mov 3,al
                                inc si
                        loop s2
                       
                        add bx,16                ;定位到下一行
                        pop cx                        ;还原cx的值
                       
                loop s

                mov ax,4c00h
                int 21h
codesg ends
end start

www5956 发表于 2014-5-17 18:40:37

这也拿出来秀。。哎。。。:titter:
页: [1]
查看完整版本: 将每个单词的前4个字母变为大写.[个人成长之印记]