zoukankan      html  css  js  c++  java
  • 问题7.7 将datasg段中每个单词改为大写字母

    思路:将暂存的外层循环次数数据放到内存单元中,需要使用的时候再从内存单元中恢复;一般来说,在需要暂存数据的时候,我们应该使用栈。

    assume               cs:codesg,ds:datasg,ss:stacksg
    datasg               segment
    db                      'ibm             '
    db                      'dec             '
    db                      'dos             '
    db                      'vax             '
    datasg                ends
    stacksg               segment                                  ;定义一个段,用来做栈段,容量为16个字节
    dw                    0,0,0,0,0,0,0,0
    stacksg               ends
    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                    ;将外层循环的cx值压栈
                               mov               si,0
                               mov               cx,3                  ;cx设置为内层循环的次数
    s:                         mov               al,[bx+si]
                               and               al,11011111b
                               mov               [bx+si],al
                               inc                si
                               loop               s
                               add                bx,16
                               pop                cx                     ;从栈顶弹出原cx值,恢复cx
                               loop               s0                     ;外层循环的loop指令将cx中的计数值减一
                               mov                ax,4c00H
                               int                21H
    codesg                     ends
                               end                 start
    

      

    天晴了,起飞吧
  • 相关阅读:
    (2/24) 快速上手一个webpack的demo
    (1/24) 认识webpack
    module.exports 、exports、export、export default的区别
    Git同时提交到多个远程仓库
    @codeforces
    @loj
    @bzoj
    @loj
    @bzoj
    @bzoj
  • 原文地址:https://www.cnblogs.com/jianqiao123/p/12251545.html
Copyright © 2011-2022 走看看