匯編語言:第7章 更靈活的定位內(nèi)存地址的方法_第1頁
匯編語言:第7章 更靈活的定位內(nèi)存地址的方法_第2頁
匯編語言:第7章 更靈活的定位內(nèi)存地址的方法_第3頁
匯編語言:第7章 更靈活的定位內(nèi)存地址的方法_第4頁
匯編語言:第7章 更靈活的定位內(nèi)存地址的方法_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章更靈活的定位內(nèi)存地址的方法And和or指令大小寫轉(zhuǎn)換的問題[BX+idata]、si和di、[bx+si]和[bx+di]、[bx+si+idata]和[bx+di+idata]定位內(nèi)存單元的用法二重循環(huán)的處理及其棧的應(yīng)用一、and和or指令1、“與”運(yùn)算指令A(yù)ND格式:ANDOP1,OP2功能:對(duì)OP1、OP2按位相“與”說明:常用于使指定位數(shù)置0的操作中。舉例:MOVAL,63H;輸入01100011ANDAL,0FH;使AL高四位為0,低四位不變。將AL的最高位設(shè)為0:ANDAL,

7FH2、邏輯“或”指令OR格式:OROP1,OP2功能:對(duì)OP1、OP2按位相“或”。說明:通常用于使指定位數(shù)置1的操作。舉例:使AL中的最低兩位置1。

ORAL,03H;AL“或”00000011

二、ASCII碼

在ASCII編碼中,將常用的128個(gè)字符用八位二進(jìn)制數(shù)(00000000—01111111)表示,其中最高一位為0。常用ASCII碼符號(hào)十進(jìn)制十六進(jìn)制0~948~5730H~39HA~Z65~9041H~5AHa~z97~12261H~7AH三、以字符形式給出的數(shù)據(jù)用一對(duì)單引號(hào)‘….’括起的內(nèi)容作為字符處理。例7-1Assume ds:datadata segmentdb ‘unIX’db ‘foRK’data endsCode segmentStart: moval,’a’ movbl,’b’ movax,4c00h int21hCode endsEnd startDb75h,6eh,49h,58hDb66h,6fh,52h,4bhMoval,61hMovbl,62h四、大小寫轉(zhuǎn)換的問題補(bǔ)全程序,將DATA中的第一個(gè)字符串轉(zhuǎn)化為大寫,將第二個(gè)字符串轉(zhuǎn)化為小寫。ASSUME CS:CODE,DS:DATADATA SEGMENT DB‘BaSiC’ DB‘iNfOrMaTiOn’DATA ENDSCODE SEGMENTSTART:CODE ENDSEND STARTStart:movax,data movds,ax movbx,0 movcx,5S1: moval,[bx] andal,0dfh mov[bx],al incbx loops1 movbx,5 movcx,11S2: moval,[bx] oral,20h mov[bx],al incbx loops2 movax,4c00h int21h大寫十六進(jìn)制二進(jìn)制小寫十六進(jìn)制二進(jìn)制A41h01000001a61h01100001B42h01000010b62h01100010C43h01000011c63h01100011D44h01000100d64h01100100Q51h01010001q71h01110001R52h01010010r72h01110010Z5Ah01011010z7Ah01111010五、[bx+idata]MOVAX,[BX]MOVAX,[BX+200]若DS=1000H,BX=2000H,則:PA=?PA=?六、用[bx+idata]的方式進(jìn)行數(shù)組的處理補(bǔ)全程序,將DATA中的第一個(gè)字符串轉(zhuǎn)化為大寫,將第二個(gè)字符串轉(zhuǎn)化為小寫。ASSUME CS:CODE,DS:DATADATA SEGMENT DB‘BaSiC’ DB‘MinIX’DATA ENDSCODE SEGMENTSTART:CODE ENDSEND STARTStart:movax,data movds,ax movbx,0 movcx,5S1: moval,[bx] andal,0dfh mov[bx],al incbx loops1 movbx,5 movcx,5S2: moval,[bx] oral,20h mov[bx],al incbx loops2 movax,4c00h int21hStart:movax,data movds,ax movbx,0 movcx,5S1: moval,[bx] andal,0dfh mov[bx],al moval,[bx+5] oral,20h mov[bx+5],al incbx loops1 movax,4c00h int21hmoval,5[bx]mov[bx]5,al七、SI和DISI源變址寄存器DI目的變址寄存器

SI和DI只能用作16位寄存器,常用于對(duì)內(nèi)存單元的尋址,功能與BX寄存器相近。MOVBX,0MOVAX,[BX]MOVSI,0MOVAX,[SI]MOVDI,0MOVAX,[DI]MOVBX,0MOVAX,[BX+10]MOVSI,0MOVAX,[SI+10]MOVDI,0MOVAX,[DI+10]例:用寄存器SI和DI實(shí)現(xiàn)字符串‘welcometomasm!’復(fù)制到它后面的數(shù)據(jù)區(qū)。assume cs:code,ds:datadata segment db‘welcometomasm!’ db‘…………….’data endscode segmentstart:code endsend startStart:movax,data movds,ax movsi,0 movdi,16 movcx,8S: movax,[si] mov[di],ax addsi,2 adddi,2 loops movax,4c00h int21h八、[bx+si]和[bx+di]MOVAX,[BX+SI]MOVAX,[BX][DI]若DS=1000H,BX=2000H,SI=3000H,DI=4000H則:PA=?九、[bx+si+idata]和[bx+di+idata]MOVAX,[BX+SI+100]MOVAX,[BX][DI].100MOVAX,[BX].100[SI]MOVAX,[BX+100][DI]十、不同的尋址方式的靈活應(yīng)用[idata]

用一個(gè)常量來表示地址,可用于直接定位一個(gè)內(nèi)存單元。例:[1000h][bx]用一個(gè)變量來表示內(nèi)存地址,可用于間接定位一個(gè)內(nèi)存單元。[bx+idata]用一個(gè)變量和常量表示地址,可在一個(gè)起始地址的基礎(chǔ)上用變量間接定位一個(gè)內(nèi)存單元。[bx+si]用兩個(gè)變量表示地址。[bx+si+idata]用兩個(gè)變量和一個(gè)常量表示地址。例:7-6編程,將data段中每個(gè)單詞的頭一個(gè)字母改為大寫字母。

assume cs:code,ds:data data segment db ‘1.file’ db ‘2.edit’ db ‘3.search’ db ‘4.view’ db ‘5.options’ db ‘6.help’ data ends code segment start:0123456789ABCDEF00001.file00102.edit00203.search00304.view00405.options00506.help例:7-7編程,將data段中每個(gè)單詞改為大寫字母。

assume cs:code,ds:data data segment db ‘ibm ’ db ‘dec ’ db ‘dos ’ db ‘vax ’ data ends code segment start:0123456789abcdef0000ibm0010dec0020dos0030vax0040start:movax,data movds,ax movbx,0 movcx,4s1: movsi,0 movcx,3s2: moval,[bx+si] addal,0dfh mov[bx+si],al incsi loops2 addbx,16 loops1start:movax,data movds,ax movbx,0 movcx,4s1: movdx,cx movsi,0 movcx,3s2: moval,[bx+si] andal,0dfh mov[bx+si],al incsi loops2 addbx,16

movcx,dx loops1例:7-9編程,將data段中每個(gè)單詞的前四個(gè)字母改為大寫字母。

assume cs:code,ds:data,ss:stack stack segment dw 0,0,0,0,0,0,0,0 stack ends data segment db ‘1.display ’

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論