計算機接口技術實驗講義_第1頁
計算機接口技術實驗講義_第2頁
計算機接口技術實驗講義_第3頁
計算機接口技術實驗講義_第4頁
計算機接口技術實驗講義_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《計算機接口技術(A)》

實驗指導書

中南民族大學計算機科學學院

年月

U—1—

刖百

《計算機接口技術》是包括計算機科學與技術在內的電子類各專業(yè)重要的專

業(yè)課程,是繼匯編語言程序設計和計算機組成原理等課程之后講授的一門實踐性

很強的課程,因此必須加強實驗教學。開設微機與接口技術的相關實驗課程,可

以促進學生理解計算機系統(tǒng)的組織結構及工作原理,掌握微處理器與外部設備之

間的接口連接方法,包括硬件接I」電路設計和相關應用軟件編程,以提高學生分

析與解決實際問題的能力。

微型計算機接口技術實驗屬于非獨立設課實驗。實驗課程安排與理論教學緊

密結合,通過上機練習和實驗操作可加深對理論內容的理解,要求學生掌握計算

機系統(tǒng)構成、接口技術及其應用編程方法以及微型計算機實現技術,同時了解微

機技術新的發(fā)展趨勢,也使學生系統(tǒng)科學地接受到分析問題和解決問題的訓練。

學生首先要熟悉通用微機接口實驗系統(tǒng)的結構、各模塊電路以及使用注意事項。

對于所涵蓋的實驗教學內容,既要掌握簡單應用,又要對綜合實驗中的重點內容

舉一反三,對實驗現象進行分析與思考以加深理解。學生也可以自己選題,擴展

實驗內容,設計和編排綜合性與研究性實驗。通過實驗教學,要求能正確使用微

機及其總線解決各種實際問題。

講義分匯編程序調試基礎及實驗操作、軟件實驗、硬件實驗和擴展實驗等四

大部分。每個實驗環(huán)節(jié)部分各由若干個獨立的實驗項目組成,整個講義主要遵循

從基礎到應用,從基本到復雜,循序漸進,從易到難的思路,并結合教材與教學

的進度而編制。重點熟悉中斷,定時計數器,并、串行I/O等概念,掌握8259,

8253,8255等接口芯片的編程及綜合應用。

整個實驗的內容由驗證性實驗和綜合設計性實驗兩部分組成,考核注重檢查

學生對理論知識的掌握程度、實際動手能力、運用所學知識解決問題的能力。為

此,要求學生在實驗前預習,根據實驗要求事先編制好程序。實驗時.,再上機調

試,將調試過程與結果以書面形式反映在實驗報告上。力求在有限的時間內達到

滿意的效果。

由于時間倉促,對于講義中出現的不妥和錯誤之處,敬請老師和同學們批評

指正。

計算機科學學院

2007年3月

目錄

部基礎知識...........................................1

1章

實驗箱性能特點.......................................1

2章

實驗箱鍵盤監(jiān)控使用簡介................................3

3章

匯編調試程序簡介—DEBUG.............................5

第二部分軟件實驗..........................................21

實驗一數據區(qū)移動..........................................21

實驗二數據排序實驗........................................22

實驗三找“零”個數........................................22

實驗四32位二進制乘法......................................23

實驗五多分支程序設計......................................25

實驗六顯示子程序..........................................27

第三部分硬件實驗..........................................29

實驗一定時器/計數器......................................29

實驗二8259單級中斷控制器實驗..............................30

實驗三8255A并行口實驗(一)...............................34

實驗四8255A并行口實驗(二)...............................35

實驗五串行接口和應用(一)串行發(fā)送.........................38

實驗六串行接口和應用(二)串行接收.........................45

實驗七A/D轉換實驗........................................48

實驗八D/A轉換實驗(一)..................................50

實驗九D/A轉換實驗(二)..................................52

第四部分接口擴展實驗.......................................53

實驗一繼電器控制..........................................53

實驗二簡單I/0口擴展實驗.................................54

實驗三存貯器讀寫實驗......................................55

實驗四電子琴實驗...........................................57

實驗五8251可編程通訊接口與PC機訊.........................63

實驗六LED16*16點陣顯示實驗................................69

實驗七8279鍵盤顯示實驗....................................78

第一部分基礎知識

第1章實驗箱性能特點

1.1系統(tǒng)運行環(huán)境

系統(tǒng)運行環(huán)境如下圖1-1所示:

圖1-1

1.2系統(tǒng)性能特點

1.采用主頻為4.77MHz的8088CPU為主CPU,并以最小工作方式構成系統(tǒng)。

2.配有一片62256靜態(tài)RAM構成系統(tǒng)的32K基本內存,地址范圍為OOOOOH~07FFFH,

可立即擴展為64K,其中OOOOOH~OOFFFH監(jiān)控占用。另配一片27256(32K)EPROM存

放監(jiān)控程序和軟硬件實驗程序,地址范圍F8000H~FFFFFH。

3.自帶鍵盤、顯示器,能獨立運行,為實驗程序調試帶來方便。

4.配備Windows調試軟件。

5.提供標準RS232異步通訊口,以連接IBM—PC機。

6.配有各種微機常用I/O接口芯片,如定時/計數接口芯片、A/D轉換接口芯片、

D/A轉換接口芯片、中斷控制器、鍵盤顯示接口、并行I/O接口芯片等。

7.配備鍵盤數碼顯示、發(fā)光二級管顯示、開關量輸入輸出等設備。

8.帶有脈沖發(fā)生器、計數器電路、單脈沖發(fā)生器等常用電路。

9.可以單步、斷點調試各實驗程序。

10.使用單個+5V電源,僅在做D/A實驗時,再需接入+12V和-12V二個電源。

11.使用環(huán)境:環(huán)境溫度0~40℃,無明顯潮濕,無明顯振動碰撞。

12.工作電源5V±5%,工作電流小于1A,開關機瞬間及工作正常時電源毛刺小于0.5V。

1.3系統(tǒng)資源分配

8088有1兆存儲空間,系統(tǒng)提供用戶使用的空間為OOOOOH~OFFFFH,用于存放、調

試實驗程序。監(jiān)控占用00000H~00013H作為單步(T)、斷點(INT3)、無條件暫停(NM1)

中斷矢量區(qū),用戶也可以更改這些矢量,指向用戶的處理,但失去了相應的單步、斷點暫停

-1-

等監(jiān)控功能。F8000H~OFFFFFH監(jiān)控程序區(qū)系統(tǒng)占用。

1)存貯器地址分配

系統(tǒng)蛻程序區(qū)FOOOOH-FFFFFH

監(jiān)控傭戶中斷矢篁OOOOOH-OOOOFH

用戶中斷矢篁00010H-000FFH

監(jiān)拄數據區(qū)00100H-00FFFH

默認用戶極00683H

用戶數據程序區(qū)01000H-0FFFFH

2)I/O地址分配

地址擴展名稱用途

8000H-8FFFH自定義實嗡用口地址

9000H-9FFFH自定義實嗡用口地址

0FF20H8155控制口寫方式字

0FF21H8155PA口字位口

OFF22H8155PB口字形口

OFF23H8155PCQ鍵入口

OFF28H8255PA口擴展用

0FF29H8255PB口擴展用

0FF2AH8255PC口擴展用

0FF2BH8255控制口寫方式字

60HEX1實驗用口地址

70HEX4實驗用口地址

80HEX6實驗用口地址

1.4系統(tǒng)配置

系統(tǒng)內含串行監(jiān)控和鍵盤顯示監(jiān)控的全部軟硬件設施,典型配置及其使用特點如下:

-2-

1.主機板(用串行監(jiān)控和基本監(jiān)控)+IBMPC機

主機板和IBMPC機通過RS232串行口相連。這種配置形式可以充分利用IBMPC

機的軟硬件資源,實現源程序的編輯、匯編和鏈接和調試.全部軟硬件實驗程序源文件

(.ASM)、執(zhí)行文件(.EXE)都在隨機軟盤上,你可以利用PC機的鍵盤顯示等輸入輸出設

備完成各種軟硬件實驗。

2.主機板(用基本監(jiān)控)+鍵盤顯示

為最經濟型配置,它不需要和IBMPC機聯(lián)機,自成一體,通過一組鍵盤命令完成

所有軟硬件實驗,每個實驗程序固化在系統(tǒng)監(jiān)控中。這種配置為沒有PC機的用戶帶來極大

方便。

第2章實驗箱鍵盤監(jiān)控使用簡介

2.1引言

本章詳細敘述鍵盤監(jiān)控程序的功能和操作方法。

系統(tǒng)一經接通電源,數碼管上顯示監(jiān)控提示符“P.

2.2鍵盤顯示

1)系統(tǒng)配備6位LED顯示器,左邊4位顯示地址,右邊2位顯示該地址內容。

2)系統(tǒng)有32個注塑鍵,左邊16個數字鍵,右邊16個功能鍵(8088系統(tǒng)用9個)。

在鍵盤監(jiān)控狀態(tài)下用戶可以通過一組鍵命令完成下列操作:

?讀寫寄存器內容

?讀寫存儲器內容

?數據塊移動

?I/O端口讀寫

?通過單步、斷點、連續(xù)等功能來調試運行實驗程序

2.3功能鍵操說明一纜表

鍵名功能操作

先輸入四位單元地址,再按MEM鍵,讀存貯儲器單元的內容,此時

MEM存貯器讀寫

輸入數字鍵,則修改該單元的內容。

先輸入寄存器代號,再按REG鍵,讀該代號所表示的寄存器單元的

REG寄存器讀寫

內容。此時再輸入數字鍵,則修改該存儲器的內容。

先輸入四位I/O口地址,再按ODRW鍵,讀該I/O口的狀態(tài),每按

ODRW讀I/O口

一次ODRW鍵,則讀入一次。

先輸入四位I/O口地址,再按DAR鍵,顯示00,再輸入要寫的數據,

DAR寫I/O口

每改寫??次寫入的數據,I/O口的狀態(tài)跟著改變。

輸入四位源首地址后按F1,再輸入源末地址后按F2,再輸入四位首

MOVE數據塊移動

地址后按MOVE鍵即可。

-3-

先輸入四位起始地址,再按STEP鍵或在存貯器讀寫狀態(tài)下按STEP

STEP單步運行

鍵或在“P.”監(jiān)控提示符號下按STEP鍵,按一次執(zhí)行一條指令語句。

先輸入四位起始地址,按EXEC鍵,或在存貯器讀寫狀態(tài)下按EXEC

EXEC連續(xù)運行鍵,或在“P.”監(jiān)控提示符號下按EXEC鍵,或先輸入四位段地址后

按F1鍵,再輸入四位偏移地址按EXEC鍵。

EXEC斷點運行先輸入四位斷點地址后按F2鍵,在輸入四位起始地址后按EXEC鍵。

2.4總體操作過程

8088十六位微機實驗系統(tǒng)上電總清以后,顯示器上顯示監(jiān)控提示符“P.",各寄存器的

初始化值如下:

SP=0638H,CS=0000H,DS=0000H,SS=0000H,IP=1000H,FL=0000H

【注意】?所有命令均在提示符“P.”狀態(tài)輸入。

?在鍵盤監(jiān)控狀態(tài),段地址缺省值為0000H。

2.5監(jiān)控程序命令及操作

1)存貯器單元內容顯示修改

操作:XXXXMEM

在提示符“P.”下,先輸入四位存貯單元地址,再按MEM鍵,顯示器左邊4位顯示地

址,右邊2位顯示該單元的內容。此時:

?按NEXT鍵使地址加1再顯示。

?按LAST鍵使地址減1再顯示。

?鍵入十六進制數據,則將改寫現行地址單元的內容。

?按MON鍵則返回監(jiān)控,顯示提示符“P.”。

2)寄存器內容顯示修改

操作:XREG

在“P.”提示符下,先輸入寄存器代號,再按REG鍵,顯示器右邊4位顯示寄存器中

內容,左3、4位顯示寄存器名。此時:

?按NEXT鍵,則依次循環(huán)顯示下一個寄存器中的內容。

?按LAST鍵,則依次顯示上一個寄存器中的內容。

?輸入十六進制數字,則該寄存器中的內容被修改。

?按MON鍵則返回監(jiān)控,顯示提示符“P.”。

0123456789ABCD

AXBXCXDXSPBPSIDICSDSSSESIPFL

3)I/O口讀

操作:XXXODRW

在提示符“P.”下,先輸入四位I/O口地址,再按ODRW鍵,顯示器左邊4位顯示

口地址,右邊2位顯示其I/O口狀態(tài)數據。此時:

?按ODRW鍵,再次讀入I/O口的狀態(tài)。

?按NEXT鍵,I/O地址加1,讀出下一個口地址的狀態(tài)數據。

?按LAST健,I/O地址減1,讀出上一個口地址的狀態(tài)數據。

-4-

?按MON鍵,返回監(jiān)控提示符“P.”。

4)I/O口寫

操作:XXXXDARW

在提示符“P.”狀態(tài)下,輸入4位I/O口地址,按DAR鍵,顯示器左邊4位顯示口

地址,右邊2位初始顯示00,此時輸入要寫入的數據。I/O的狀態(tài)會隨寫入的內容而變化。

?按NEXT鍵,1/0口地址加1。

?按LAST鍵,I/O口地址減1。

?按MON鍵,返回監(jiān)控提示符“P.”。

5)(5)數據塊移動

操作:XXXXF1XXXXF2XXXXMOVE

在提示符“P.”狀態(tài)下,先輸入4位數據塊源首地址,按F1鍵,再輸入數據塊源末地

址,按F2鍵,最后輸入目標數據塊首地址,按MOEV鍵,開始數據塊傳送,傳送完畢返回

監(jiān)控,顯示提示符“P.”。

6)單步運行

操作:有三種狀態(tài)都可以進入單步操作(段地址固定為0000H)

?在監(jiān)控提示符“P.”狀態(tài)下,按STEP鍵,從默認的起始地址IP=1000H單元開始單

步運行一條指令語句。

?在存貯器單元讀寫狀態(tài)(即左邊4位顯示存貯器地址,右邊2位顯示存貯器單元內

容)下,從當前存貯器地址開始單步運行一條指令語句。

?先輸入四位起始地址,再按STEP鍵,則從輸入的起始地址開始運行一條指令語句。

每運行一條語句,顯示器顯示下一條指令語句的地址及其內容。

7)連續(xù)運行

操作:有三種狀態(tài)可以進入連續(xù)運行

?在監(jiān)控提示符“P.”狀態(tài)下,按EXEC鍵,從默認起始地址CS=0000H,IP=1000H

開始連續(xù)運行用戶程序。

?在存貯器寫狀態(tài)下,按EXEC鍵,則從輸入的起始地址開始連續(xù)運行用戶程序(CS=

OOOOH),

?先輸入起始4位段地址,按F1鍵,再輸入4位起始偏移地址,再按EXEC鍵,則

從規(guī)定的段地址和偏移地址開始連續(xù)運行用戶程序。

要想從運行用戶程序返回監(jiān)控,可以按8088卡上的STOP暫停鍵或主機RSET鍵。如

果用STOP鍵中斷程序運行,則保護所有寄存器的內容返回監(jiān)控。如果按RESET鍵,則重

新進入監(jiān)控狀態(tài),初始化各寄存器。

8)斷點運行(默認段地址CS=00()0H)

操作:XXXXF2XXXXEXEC

在提示符“P.”狀態(tài)下,輸入4位斷點地址,按F2鍵,再輸入4位起始地址,按EXEC

鍵,程序從起始地址開始運行,顯示器顯示“「”執(zhí)行符。當程序運行到斷點地址處會自動

停下來,并顯示斷點地址和內容,同時保護所有寄存器的值。

當由于某種原因程序不能正常運行到斷點地址處時(即通常所說的程序“跑飛”),可以

按8088卡上的STOP暫停鍵,以確定程序運行到何處,同時必須用存貯器讀寫功能恢復斷

點處的一個字節(jié)內容。

第3章匯編調試程序簡介—DEBUG

在編寫和運行匯編程序的過程中,會遇到一些錯誤和問題,需要對程序進行分析和調試。

-5-

調試程序DEBUG就是專為小匯編和宏匯編語言設計的?種調試工具。它在調試匯編語言程

序時有很強的功能,能使程序設計者接觸到機器內部,能觀察和修改寄存器和存儲單元內容,

并能監(jiān)視目標程序的執(zhí)行情況,使用戶真正接觸到CPU內部,與計算機產生最緊密的工作

聯(lián)系。

3.1DEBUG的主要特點

1.能夠在最小環(huán)境下運行匯編程序

在DOS狀態(tài)下運行匯編程序,必須將源程序經過MASM(或ASM)匯編后,再經過LINK

連接程序產生可執(zhí)行程序,才能最終運行,比較麻煩。DEBUG調試程序,為用戶提供了編

程、調試、監(jiān)督、執(zhí)行用戶編寫的匯編程序的環(huán)境。因此調試周期短,為用戶提供了極大的

方便。

2.提供極簡單的修改手段

DEBUG提供了修改命令,可以修改內存單元內容,為調試程序、修改程序帶來了方便。

3.提供了用戶與計算機內部聯(lián)系的窗口

DEBUG具有顯示命令。它既可以使用戶看到某內存單元或某一塊單元內容,也可以看

到CPU內部各寄存器的內容。用單步執(zhí)行命令跟蹤執(zhí)行,每執(zhí)行一步都能使用戶看到各寄

存器的內容的變化,以便分析和調整程序。

4.可裝入、修改或顯示任何文件

當然在DEBUG狀態(tài)下運行匯編程序也具有一定局限性。

1)在DEBUG狀態(tài)下運行的程序不能使用宏匯編程序中的宏指令,大部分偽指令也不

能使用,因此只能把程序分段調試。

2)不能調試太長的程序,只能分塊進行程序設計。

3)在DEBUG狀態(tài)下調試好的程序不能形成可執(zhí)行文件(.EXE),因此調試好的只能

記下,到編輯環(huán)境下鍵人調試好的程序,通過匯編程序(ASM或MASM),再通過連接程

序(LINK)形成可執(zhí)行文件(.EXE)。

3.2通過DEBUG編寫、運行匯編程序

卜面通過例子使大家了解在DEBUG狀態(tài)下編寫、運行匯編語言程序。

(例1)用匯編語言編寫一個簡單的加法程序。

MOVAL,32H;將2的ASCII碼送AL寄存器中

MOVDL,37H;將7的ASCII碼送DL寄存器中

ADDDL,AL;將2+7結果送DL寄存器中

SUBDL,30H;將結果進行調整,得到9的ASCII碼,送DL

MOVAH,2

INT21H;輸出DL寄存器中的字符

INT20H;中斷當前執(zhí)行的程序

該程序是將兩個十進制數2和7的ASCII碼送入寄存器AL和DL。當ASCII碼進行相

加時,,必須通過調整后才能得到正確的結果。如例中32H+37H=69H,69H-30H=39H,39H

才是十進制數9的ASCII碼。將結果在顯示器上輸出時,該程序段采用的是DOS系統(tǒng)功能

調H(INT21H)中的2號功能,即DL寄存器中的字符(ASCH碼)顯示在顯示器上,INT20H

是中斷正常結束程序。

運行步驟如下:

1.進入DEBUG狀態(tài)

在DOS狀態(tài)下,進人裝有DEBUG程序的磁盤目錄,如D盤MASM目錄下裝有DEBUG

調試工具。

D:\>CDMASMZ

D:\MASM\>DEBUG/

-6-

屏幕顯示:

“一”為進人DEBUG狀態(tài)。在該提示符下可鍵人DEBUG命令。下劃線部分為用戶鍵

人的字符或命令。

2.用DEBUG的A命令送入程序

—A100Z

0A47:0100MOVAL,32/

0A47:0102MOVDL,37/

0A47:0104ADDDL,AL/

0A47:0106SUBDL,30/

0A47:0109MOVAH.2/

0A47:010BINT21HZ

0A47:010DINT20H/

0A47:010F/

當鍵入A命令時,會自動產生程序所送內存單元的段地址和偏移地址,通過偏移地址

可以看到每條指令占內存單元多少個字節(jié),MOVAL,32占兩個字節(jié),SUBDL,30占3個

字節(jié)。當程序段送完時,只鍵入回車鍵/,就退出匯編狀態(tài)(A狀態(tài))回到DEBUG狀態(tài)

“一”。其中送入數據為十六進制數,DEBUG狀態(tài)下程序中的數據均按十六進制數處理,不

需要鍵入H來表示數據為十六進制數。

3.執(zhí)行程序

用DEBUG的G命令執(zhí)行剛剛匯編的程序:

—GZ

9

Programterminatednormally

4.反匯編

可以用反匯編U命令將鍵入的程序調出,并且可以得到每條指令的機器碼。

—U10010DZ

0A47:0100BO30MOVAL,32

0A47:0102B237MOVDL,37

0A47:010400C2ADDDL,AL

0A47:010680EA30SUBDL,30

0A47:0109B402MOVAH,02

0A47:010BCD21INT21

0A47:010DCD20INT20

其中命令U后面的地址為要反匯編程序的起始偏移地址和終止偏移地址。

5.退出DEBUG返回DOS狀態(tài)

-0^

D:\MASM>

3.3DEBUG的進入

1.DEBUG的啟動

在操作系統(tǒng)(DOS)狀態(tài)下,直接調入命令的格式如下:

DEBUG[D:]LPath][Filename[.exe]][Parml][Parm2]

其中:口的內容為可選項

[d:]為驅動器號,是指要調入DEBUG狀態(tài)的可調試文件在哪個驅動器中,如A:、C:、

D:等。

[Path]為路徑,是指要調入DEBUG狀態(tài)的可調試文件是在哪個目錄下或子目錄下。

LFilenamet.exe]],是指要調入DEBUG狀態(tài)的可調試文件的文件名。該文件是通過編輯、

匯編、連接后產生的可執(zhí)行文件,也可以是在DEBUG狀態(tài)下匯編的程序段。通過寫盤命令

W寫入磁盤的文件。

-7-

[Parml][Parm2]為任選參數,是給定文件的說明參數。

在啟動DEBUG時,如果輸入了Filename(文件名),則DEBUG程序把指定文件裝入

內存。用戶可以通過DEBUG的命令對指定文件進行修改、顯示或執(zhí)行。如果沒有文件名,

則是以當前內存的內容工作,或者用命名命令或裝入命令把需要的文件裝入內存,然后再通

過DEBUG命令進行修改、顯示或執(zhí)行。

2.DEBUG啟動后對寄存器和標志位的初始化

當啟動DEBUG程序后,屏幕上出現“一”,說明系統(tǒng)已進入DEBUG狀態(tài),可以調入

DEBUG的命令,寄存器和標志位置成下面狀態(tài):

1)段寄存器(CS,DS,ES和SS)被置成到自由存儲空間的底部,即第一段位于DEBUG

程序的末尾處。

2)指令指針(IP)置為0100H(或0000H)。

3)堆棧指針(SP)置為段的尾部或裝入程序的暫存區(qū)域的底部。

4)寄存器(AX,BX,CX,DX,BP,SI和DI)置為“0"。若啟動DEBUG程序時指

定了文件,則CX寄存器內裝入文件長度(字節(jié)數)。如果文件長度大于64KB,則文件長度

位于BX寄存器和CX寄存器中(高位在BX中。

5)標志位置為清除值。

由此可見,所有可利用的內存空間都作了安排,因此不能用裝入的程序去分配內存。如

裝入程序擴展名為.EXE的文件,進入DEBUG后由DEBUG進行分配,把段寄存器、堆棧

指針置成程序中所規(guī)定的值。

3.4DEBUG的主要命令

1.DEBUG命令的有關規(guī)定

1)DEBUG命令都是一個字母,后面跟著一個或多個參數。多個操作參數之間用“,”

或空格隔開。

2)DEBUG命令必須接著按ENTER(回車)鍵命令才有效。

3)參數中不論是地址還是數據,均用十六進制數表示,但十六進制數后面不用“H”。

4)可以用Ctrel-Break鍵來停止一個命令的執(zhí)行,返回到DEBUG的提示符“一”下。

5)用CtreLNumLock鍵中止正在上卷的輸出行,在通過按任意鍵繼續(xù)輸出信息。

2.DEBUG命令

1)匯編命令A

格式:①A[段寄存器名]:[偏移地址]

②A[段地址]:[偏移地址]

③A[偏移地址]

@A

功能:用該命令可以將匯編語言程序直接匯編進入內存。

當鍵入A命令后,顯示段地址和偏移地址等待用戶鍵入匯編命令。每鍵入一條匯編指

令回車后,自動顯示下一條指令的段地址和偏移地址,再鍵入下一條匯編指令,直到匯編語

言程序全部鍵入,有顯示下一條地址可直接鍵入回車返回到提示符“一”為止。

其中①的段地址在段地址寄存器中,因此在使用該命令時必須將段地址寄存器送入段地

址;③的段地址在CS中;④的段地址在CS中,偏移地址為10011。

例如:用匯編語言編寫一個程序段,將十六進制0、1、2……F的ASCH碼送人偏移地

址為100H單元開始的存儲單元中,并將該十六進制數據從100H單元開始的存儲區(qū)傳送到以

200H為起始地址的存儲區(qū)中。

將編好的程序段通過命令A送入內存并匯編,用塊傳送指令MOVSB將數據串進行傳送。

D:\MASM>DEBUG/

—AZ

14DE:0100DB30,31,32,33,3*35,36,37,38,39,41,42.43.44.45,462

14DE:0110MOVSL100/

14DE:0113MOVDL200/

-8-

UDE:0116MOVCX,10/

14DE:0119REPMOVSB/

UDE:011BHLTZ

UDE:011C/

其中,SI為源串地址寄存器;DI為目的串地址寄存器;計數寄存器CX存放計數初值

10HoREPMOVSB為重復傳送;以字節(jié)為傳送單位。每傳送?個字節(jié),CX中計數值減“1”,

直到CX為0為止。

2)顯示內存命令D

格式:①D[地址]

②D[地址范圍]

③D

功能:顯示指定內存范圍的內容。

顯示的內容為兩種形式:一種為十六進制內容,一種為與十六進制相對應的ASCH碼

字符,對不可見字符以代替。

對于①、③每次顯示128個字節(jié)內容,②顯示的字節(jié)由地址范圍來決定。

若命令中有地址,則顯示的內容從指定地址開始;若命令中無地址(如③)則從上一個D

命令所顯示的最后一個單元的下一個單元開始。若以前沒有使用過D命令,則以DEBUG

初始化的段寄存器的內容為起始段地址,起始偏移地址為100H,即CS:100。

對于①中的地址為偏移地址,段地址為CS的內容。對②中的地址范圍,可以指定段地

址和起始偏移地址和終止偏移地址O

例如:顯示起始地址為100H的內存單元內容為:

-D100/

OA47:01000B06983A7409A196-3A8B16983AEB1E8B...:t...:...:...

OA47:0110IEFA93DIE3DIE3C4-9FD24126340036OA...........A&4.6.

OA47:0120DIE38B87D2418B97-D4410506OO5250B8…A...A...RP.

0A47:0130OO01EBA3FF36FA93-9A18FO5E22B8708E…?.6…App.P.

0A47:014050833EFA93FC7512-Al963AOB06983A74P....:t

0A47:015009Al963A8B16983A-EB1E8BIEFA93DIE3...:...:.........

OA47:0160DIE3C49FD241268B-1FD1E3D1E38B87D2.....A&...........

OA47:0170418B97D441050600-5250B840OOE957RFA...A...RP.@..W.

再顯示偏移地址為100H120H的內容為:

-D100120/

OA47:()100OB06983A7409Al96-3A8B16983AEB1E8B...:t...:...:...

0A47:0110IEFA93DIE3D1E3C4-9FD24126340036OA...........A&4.6.

0A47:0120D1

接著再顯示,只用D命令不鍵入地址,那么接著上次1)顯示的地址開始顯示為:

-DZ

OA47:0120E38B87D2418B97-D4410506005250B8...A...A...RP.

0A47:01300001EBA3FF36FA93-9A18FO5E22B8708E.....6.....App.P.

OA47:014050833EFA93FC7512-Al963AOB06983A74P....:t

0A47:015009Al963A8B16983A-EB1E8BIEFA93DIE3...:...:..........

0A47:0160DIE3C49FD241268B-1FD1E3D1E38B87D2…A&............

0A47:0170418B97D441050600-52508B4000E957FFA...A...RP.@..W.

OA47:01806E48C94814496E49-6E496E496E49CBC6nH.H.Inlnlnlnl..

OA47:019006D89300C606IA93-00C606A29100C606......................

0A47:0IAO70

例如:指定數據段寄存器DS的內容為段地址,顯示在該段內偏移地址為100II?150H

的內容。

-DDS:100150/

0A47:01000B06983A7409A196-3A8B16983AEBIE8B...:t...:...:...

0A47:01101EFA93D1E3DIE3C4-9FD241263400360A.............A&4.6.

0A47:0120DIE38B87D24I8B97-D4410506005250B8…A...A...RP,

0A47:01300001EBA3FF36FA93-9A18F05E22B8708E.....6....App.P.

0A47:014050833EFA93FC7512-Al963A0B06983A74P.…:t

0A47:015009

-9-

3)修改存儲單元內容命令E

格式:①E[地址][內容表]

②E[地址]

功能:①用命令所給定的內容表去代替指定地址范圍的內存單元內容。

②一個單元一個單元地連續(xù)修改單元內容。

其中:內容表為一個十六進制數或一串十六進制數,也可以是用單引號括起的一串字符。

例如:往200H為起始地址單元存放一串十六進制數,如:

-E2006162636465666768-6970717273747576/

要看一看是否將這些十六進制數替換了原來單元內容。

—D200210/

0A47:02006162636465666768—6970717273747576abcdefghipqrstuv

0A47:021003

如果用一串字符來替換200H單元開始的內容(用單引號括起部分),有:

—E200'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/

再用D命令看看內容是否被替換:

-D200220/

0A47:02004142434445464748-494A4B4C4D4E4F50ABCDEFGHIJKLMNOP

0A47:02105152535455565758—595A3AE91101B8A2QRSTUVWXYZ:...

0A47:0220366

如果一個單元一個單元地修改,每修改一個單元內容按空格鍵,再鍵入下一個單元的

修改內容,直到按回車鍵為止。如:

-E20Q/

0A47:020041.61.42.62.43.63.44.64.45.65.46.66.47.67.48.68

0A47:021049.69.4A.70.4B.71.4C.72.4D.73.4E.74.4F.75.50.76

0A47:022059.

(注:.代表空格鍵)

-D200230/

0A47:02006162636465666768-6970717273747576abcdefghipqrstuv

0A47:02107778798081828384~595A3AE91101B8A2wxy….YZ:..???

0A47:0220361E500EE80CFEBS-A6361E500EE803FE6.P......6.P.

0A47:0230FF

4)填充內存命令F

格式:F[范圍][單元內容表]

功能:將單元內容表中的內容重復裝入內存的指定范圍內。

例如:將'adc'重復裝入從200H開始的內存單元,有:

—F200'adc'/

-D200/

0A47:02006164636164636164-6361646361646361adcadcadcadcadca

0A47:02106463616463616463-6164636164636164dcadcadcadcadcad

0A47:02206361646361646362-6463616463616463cadcadcadcadcadc

0A47:02306164636164636164-6361646361646361adcadcadcadcadca

0A47:02406463616463616463-6164636164636164dcadcadcadcadcad

0A47:02506361646361646361-6163616463616463cadcadcadcadcadc

0A47:02606164636164636164-6361646361646361adcadcadcadcadca

0A47:02706463616463616463-6164636163646364dcadcadcadcadcad

5)內存搬家命令M

格式:M[源地址范圍][目標起始地址]

其中,源地址范圍和目的起始地址為偏移地址,段地址為DS的內容。

功能:把源地址范圍的內容搬至以目標起始地址開始的存儲單元中。

例如:顯示200H-250H和400H-470H的內容。

—D200/

0A47:0200FA93FC7403E90901-A1963A0B06983A75u

0A47:021003E9FD00A1963A8B-16983AE91101B8A2....

0A47:0220361E500EE80CFEB8-A6361E500EE803FE6.P6.P….

-10-

0A47:0230FF36FA939A18F05E-22E91901833EFA17.6….-pp…—>??

0A47:02400075BBFF36FA939A-18FO5E22OEE83FFF.u..6??:."pp????

0A47:0250E90201FF36FA939A-18FO5E22833EFA93….6…OPP.>.

0A47:0260FF74528D46FA5083-3EFA93FC7512Al96.tR.F.P.>???u…

0A47:02703AOB06983A7409A1-963A8B16983AEBIE:…:t…:…:??

-D400/

0A47:0400FF5C74OB8BD9FF46-FE8B7608C6005C8B.\t???.F..V..\.

0A47:04105E06833F00752483-3EE21A00750790OE?.u$.>-u-

0A47:0420E8B5ElEB119A8556-5E228AOE3001FE06....V*pp..0...

0A47:043030012AED03Cl8B5E-068907B81000508B0.*???.'....P?

0A47:044046FE03460850FF37-90OEE883DE83C406F..F.P.7....

0A47:0450BFFE298CD88ECO8B-7608B9FFFF33COF2..)???..V…?3??

0A47:0460AEF7DI2BF98BD987-FEB9FFFFF2AE4F8B…+........0?

0A47:0470CBDIE9F2A513C9F2-A45E5F8BE55DCA04.....、??]??

再用M命令將200H?250H的內容送400H-450H中:

-M200250400/

-D400/

0A47:0400FA93FC7403E90901-Al963AOB06983A75…t...:…:u

0A47:041003E9FD00Al963A8B-16983AE91101B8A2...:…:

0A47:042036IE50OEE8OCFEB8-A636IE50OEE803FE6.P....6.P….

0A47:0430FF36FA939A18FO5E-22E91901833EFA17.6….>p.???>..

0A47:04400075BBFF36FA939A-18FO5E22OEE83FFF.u..6-...?.

0A47:0450E9FE298CD88ECO8B-7608B9FFFF33COF2..)??.?.v???.3..

0A47:0460AEF7DI2BF98BD987-FEB9FFFFF2AE4F8B…+.......0.

0A47:0470CBDIE9F2A513C9F2-A45E5F8BE55DCA04.....

6)比較命令C

格式:C[源地址范圍],[目的地址]

其中,源地址范圍是由起始地址和終止地址指出的一片連續(xù)的存儲單元。目的地址為與

源地址所指單元相比較的H標地址的起始地址。

功能:從源地址范圍起始的地址單元開始,逐個與目標起始地址往后的單元順序比較每

個單元內容,比較到源終止地址為止。比較結果一致,則不顯示任何信息;如果不一致,則

以[源地址][源內容][目的內容][目的地址]的形式顯示失配單元地址及內容。

例如:比較100H?107H各單元內容是否與200H?207H各單元內容一致,先看一下

100H?107H和200H?207H的內容。

-D100110/

0A47:01000B06983A7409A196—3A8B16983AEBIE8B…:t…

0A47:01101E—

-D200210/

0A47:0200FA93FC7403E90901-A1963A0B06983A75…t...:…:u

0A47:021003

用C命令進行比較:

-C100107200/

0A47:01000BFA0A47:0200

0A47:010106930A47:0201

0A47:010298FC0A47:0202

0A47:01033A740A47:0203

0A47:010474030A47:0204

0A47:010509E90A47:0205

0A47:0106A1090A47:0206

0A47:010796010A47:0207

由于100H?107H與200H?207H各單元內容不同,因此列出失配各單元地址和內容。第

1列為源地址的段地址;第2列為源地址的偏移地址;第3列為源地址所存放的內容;第4

列為目的地址所對應的存放內容;第5列為目的地址的段地址;第6列為目的地址的偏移地

址。

7)搜索指定內容命令S

格式:S[地址范圍][表]

功能:在指定地址范圍內搜索表中內容,搜索到就顯示表中元素所在地址。

例如:搜索地址范圍為100H-150H中的50H這個數據所在地址。讓我們通過D命令先

來觀察一下100H?170H單元的內容,然后再用搜索命令S完成題目要求

D:\MASM>DEBUGZ

—D100/

14DE:01005D58C35051525653—56E8AA005E2EC706]X.PQRVSV...

14DE:0110828900002EC70684—8900002E3400CD14........4-

UDE:01200000E8AD0072182E—A382890ADB74IAE8...r....t-

UDE:

溫馨提示

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

最新文檔

評論

0/150

提交評論