不同的寻址方式的应用——将每行的单词都变成大写
生活随笔
收集整理的這篇文章主要介紹了
不同的寻址方式的应用——将每行的单词都变成大写
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編程,將data段中每個字母改為大寫字母
和C語言一樣,外層循環控制行,內層循環控制列!
;編程,將data段中每個字母改為大寫字母 assume cs:code,ds:data data segment;'0123456789ABCDEF'db 'ibm ' ;IBMdb 'dec 'db 'dos 'db 'vax ' ; 要四行,每一行有三個字母需要變成大寫,怎么做? ; 首先想怎么把第一行的三個字母變成大寫 data endscode segment start:mov ax,datamov ds,axmov bx,0mov cx,4 ;執行四行uprow: mov dx,cx ;☆☆☆☆☆可以使用我們沒有使用過的寄存器,把cx臨時保存起來 mov cx,3mov si,0upletter: mov al,ds:[bx+si] ;把第一行的三個字母變成大寫and al,11011111Bmov ds:[bx+si],alinc siloop uplettermov cx,dx ;把cx從dx中拿回來 ;用dx恢復cxadd bx,16 ;每循環一行,bx要加16loop uprow ;外層循環的loop指令將cx中計數值-1mov ax,4c00hint 21hcode ends end start方法1、我們應該在每次開始內層循環的時候,將外層循環的cx中的數值保存起來,在執行外層循環loop指令前,再恢復外層循環cx的數值。可以用寄存器dx來臨時保存cx中的數值
方法2、放入棧中
在CPU指令loop指令的時候,要進行兩步操作:
①cx=cx-1
②判斷cx中的值,不為零則跳轉?標號處執行程序,如果為0則向下執行。
涉及到了loop的嵌套
改進:寄存器是有限的,所以可以聲明一個值:dw 0,將cx保存在這里,40H
一般來說,在暫存數據的時候,我們都應該使用棧
更好的方法:用棧存放
一般來說,在需要暫存數據的時候,我們都應該使用棧
總結
以上是生活随笔為你收集整理的不同的寻址方式的应用——将每行的单词都变成大写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不同寻址方式的灵活应用——改变每个单词首
- 下一篇: 界面设计方法(2)— 5.功能按钮设计(