微機原理 資料傳送實驗

2021-09-05 11:02:52 字數 2688 閱讀 8373

一、實驗目的:

1.掌握與資料有關的不同定址方式。

2.繼續熟悉實驗操作軟體的環境及使用方法。

二、實驗環境:

pc 微機一台。

三、實驗內容:

本實驗要求將資料段中的乙個字串傳送到附加段中,並輸出附加段中的目標字串到螢幕上。

圖 2-2-1  資料傳送流程圖

根據上述流程圖編寫實驗程式(例程檔名:a2.asm)

data segment             ;定義資料段

msr db "hello,world!$" 

len equ $- msr

data ends

exda segment              ;定義附加資料段

msd db len dup(?)

exda ends

mystack segment stack   ;定義堆疊段

dw 20 dup(?)

mystack ends

code segment              ;定義**段

assume cs:code,ds:data,es:exda

start: mov ax,data

mov ds,ax              ;裝載資料到 ds 中

mov ax,exda

mov es,ax              ;裝載附加資料到 es 中

mov si,offset msr      ;設定 si

mov di,offset msd     ;設定 di

mov cx,len

next: mov al,[si]           ;開始傳輸資料

mov es:[di],al

inc si

inc di

dec cx

jnz next

push es

pop ds                  ;將附加段暫存器指向的段值賦給資料段暫存器

mov dx,offset msd

mov ah,9

int 21h

key: mov ah,1              ;判斷是否有按鍵按下?

int 16h                 ;(為觀察執行結果,使程式有控制的退出)

jz key

mov ax,4c00h          ;結束程式退出

int 21h

code ends

end start

實驗步驟:

編輯源**

將程式原始碼編輯完成之後修改檔名為 a2.asm,並儲存在目錄 e:\mycode

下。編譯 a2.asm 檔案

進入 dos 系統開啟 e 盤 mycode 資料夾所在目錄,並編譯 a2.asm 檔案,知道編譯無錯誤。如圖 2-2-2 所示。

圖 2-2-1  生成 a2.obj 檔案

執行程式後,螢幕顯示「hello,world!」。說明程式執行正確。下面我們通過除錯檢視記憶體資料,來了解資料的傳輸過程。

debug 除錯

輸入命令e:\masm5.0>debug a2.exe可進入除錯系統,首先對 a2.exe 進行反彙編,如圖 2-2-4 所示。

圖 2-2-4  a2.exe 反彙編

從反彙編的程式上可以看出,原字串存放的段位址為 1434,偏移位址為 0x0000,複製字串的目的位址的段位址為 1435,偏移位址為 0x0000,字串的長度為 0x0e。下面通過記憶體檢視命令檢視源位址和目的位址的資料情況,如圖 2-2-5 所示。

圖 2-2-5  源位址與目的位址的資料

從圖 2-2-5 可直接看出原位址所存放的資料為「hello,world!」,目的位址存放的資料全部為 0。現將程式執行至 1439:001b 處,程式執行到此處時,可完成乙個位元組的資料傳輸,檢視目的位址的記憶體資料。如圖 2-2-6 所示。

圖 2-2-6  傳輸乙個位元組後目的位址的資料

傳輸乙個位元組後可在目的位址的第乙個資料位 0x48,其 ascii 碼為『h』。同時也可觀察 ax 寄存的低 8 位也為 0x48。將程式執行至 1439:001d 處,此時程式已經跳出了資料傳送的迴圈,資料的傳送工作已將完成。檢視目的位址的記憶體資料,如圖 2-2-7 所示。

圖 2-2-7  資料傳送完成後目的位址的資料

由圖 2-2-7 可直接看出資料傳送完成之後目的位址存放的資料與源位址存放的資料一致,說明資料傳送完成,程式正確無誤。

微機原理0832和0809實驗

一 實驗題目 1 利用0809完成1個通道的模擬量採集,並利用8255輸出二進位製碼。2 利用0832產生鋸齒波輸出,並在直流電機上觀察結果。3 選做8255鍵盤顯示實驗。二 實驗目的 熟悉組合語言程式設計環境,掌握0809及0832晶元工作原理 電路設計及利用組合語言編寫介面軟體。三 實驗電路圖 ...

微機原理及應用實驗 加法指令詳解

帶進製位的加法指令adc 加1指令inc 減法運算指令 考慮借位的減法指令sbb 減1指令dec 控制暫存器 ip,flags 加法指令詳解 格式add oprd1,oprd2 操作oprd1 oprd2並把結果賦給oprd1 add指令的執行對全部6個狀態標誌位都產生影響 格式adc oprd1,...

微機原理概述

1.什麼是微型計算機機?由於明確定義微型計算機的定義比較困難,我們一般把台式計算機一類的個人計算機 結構相對簡單的工業控制計算機等等統稱為微型計算機 2.微機原理這門學科是研究什麼的?我們主要討論微型處理器,微型計算機和微型計算機系統.1 微處理器 cpu 是微型計算機控制和處理的核心。如圖所示,微...