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