汇编网首页登录博客注册
kingwrcy的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2009-04-11 13:17] 问题7.9

代码如下:

assume cs:code,ss:stack,ds:data

stack segment
        dw 0,0,0,0,0,0,0,0
stack ends

data segment

        db '1. display      '
        db '2. brows        '
        db '3. replace      '
        db '4. modify       '

data ends

code segment

start:
                mov ax,stack
                
                mov ss,ax
                
                mov sp,10H
                
                mov ax,data
                
                mov ds,ax
                
                mov cx,4
                
                mov bx,0
                
                s: push cx
                        
                        mov cx,4
                        
                        mov si,3
                        
                                s0:         
                                mov al,[bx+si]
                                
                                and al,11011111b
                                           
                                mov [bx+si],al
                                           
                                inc si
                                           
                                loop s0
                                   
                       add bx,10H
                   
                        pop cx
                
                loop s
                
                mov ax,4c00h
                
                int 21h
                
                code ends
                
                
                end start
ps:2个循环嵌套.注意保存cx的值.我保存在栈中.所以代码中一开始就开辟了一个栈空间.外层循环主要是对4行字母进行循环.内层循环主要是对每个字母的第3-6位进行循环.利用and 11011111b.将该字母转化为大写字母.所以外层循环的次数为4次.进入外层循环时首先需要把cx值保存起来.一次循环完后需要从栈中恢复cx的值以便下次循环.所以s循环开始时要push cx,s循环结束时要pop cx.内层循环时,si的值从3变化到6,也就是每行字母的前4个字母.

我觉得这题比较复杂.我搞了好久.结合答案才弄懂..可能人笨了点..
评论次数(1)  |  浏览次数(642)  |  类型(汇编作业) |  收藏此文  | 

[  游客   发表于  2009-04-15 11:29  ]

刚开始是这样的,弄得慢没关系,只要你努力,总会有结果的。思维是锻炼出来的,经过这程序,再有类似的思维逻辑就不会觉得复杂了。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码