寄存器使用和尋址方式_第1頁
寄存器使用和尋址方式_第2頁
寄存器使用和尋址方式_第3頁
寄存器使用和尋址方式_第4頁
寄存器使用和尋址方式_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

三、寄存器的使用與尋址方式一、CS+IP:指令尋址

DS+偏移地址:數據尋址二、幾個常用指令三、尋址方式問題一:

寄存器和存儲器有什么不同?1.位置不同2.速度不同3.訪問方式不同4.空間大小不同

問題二:

內存被劃分成了一個一個的段,每一個段有一個段地址?

內存并沒有分段,段的劃分來自于CPU,由于8086CPU用“(段地址×16)+偏移地址=物理地址”的方式給出內存單元的物理地址,使得我們可以用分段的方式來管理內存。問題三:

8086CPU尋址使用段地址+偏移地址原因是什么?8086CPU具有以下幾個方面特征:1、運算器一次最多可以處理16位的數據。2、寄存器的最大寬度為16位。3、寄存器和運算器之間的通路是16位的。4、8086有20位地址總線,可傳送20位地址,尋址能力為1M。5、8086內部為16位結構,它只能傳送16位的地址,表現出的尋址能力卻只有64K問題四:

如果給定一個段地址,僅通過變化偏移地址來訪問內存,最多可以訪問(定位)多少內存單元?偏移地址為16位,16位地址的尋址能力為:2=64K,所以一個段的長度最大為64K。問題五:

物理地址為:22345H,請寫CPU訪問該單元時可能使用的段地址和偏移地址?物理地址 段地址 偏移地址22345 2234 522345 2230 4522345 2231 3522345 2232 2522345 2200 34522345 2000 234522345 1F00 3345…… …… ……問題六:

CPU如果找到要執行指令在內存中的位置?

指示了CPU當前要讀取指令的地址。

CS為代碼段寄存器;IP為指令指針寄存器從CS:IP指向內存單元讀取指令,讀取的指令進入指令緩沖器;IP=IP+所讀取指令的長度,從而指向下一條指令;執行指令。轉到步驟(1),重復這個過程。問題七:

在DUBUG中如果讓CPU執行內存中自己編寫的程序?

用DUBUG的R命令修改CS和IP的值,使其指向自己程序的第一行指令。修改CS:指向自己程序的段地址修改IP:指向自己程序的第一行指令的偏移地址T:單步每行。問題八:

如果將數據123456H存放在內存地址為10000H空間中,數據是如何存放的?5634121000010001100021000310004100051000610007(10000H)=123456H問題九:

8086CPU寄存器共有多少個?名字是什么?

8086寄存器組:數據寄存器:指針及變址寄存器:SP、BP、SI、DI段寄存器:CS、DS、SS、ES控制寄存器:IP、FLAGSAXBXCXDXAHALBHBLCHCLDHDL

高8位低8位問題十:

8086標志寄存器空間有多大?功能是什么?標志寄存器(程序狀態字寄存器PSW)1514131211109876543210

條件碼標志:控制標志:OF溢出標志DF方向標志SF符號標志IF中斷標志ZF零標志TF陷阱標志CF進位標志AF輔助進位標志PF奇偶標志OFDFIFTFSFZFAFPFCF二、幾個常用指令通用數據傳送指令:MOV加法指令:ADD減法指令:SUB無條件跳轉指令:JMP循環指令:LOOP1

指令系統

一組指令的集合,不同的計算機指令不同,指令集中指令的數量也不同,大體上在幾十種到百余種

操作碼操作數...操作數一、指令:操作碼——

告訴計算機要執行的操作是什么,如:加、減、邏輯與等。操作數——

執行操作過程所要操作的數,如加運算的兩個加數。如:43INCBX8908MOVAX,BXB80010MOVAX,100002850020ADDAL,[DI+2000]C606003012MOVBYTEPTR[3000],12C70600303412MOVWORDPTR[3000],1234

二、匯編語言

匯編語言是一種符號語言,它用:助記符——

表示操作碼;符號或符號地址——

表示操作數或操作數地址.操作碼操作數傳送指令:MOVDST,SRC執行操作:(DST)(SRC)

通用數據傳送指令MOV加法指令

加法指令:ADDDST,SRC

執行操作:(DST)(SRC)+(DST)減法指令減法指令:SUBDST,SRC執行操作:(DST)(DST)-(SRC)2幾個常用指令演示MOV指令使用問題指令:MOVAX,[2000]中:數字2000表示什么?[2000]表示什么?類型(或長度)是什么?MOVAX,[2000]含義是什么?指令MOVAX,2000含義是什么?數字2000表示什么?指令含義是什么?與指令MOVAX,[2000]有什么不同?指令MOVAL,[2000]含義是什么? 與指令MOVAX,[2000]有什么不同?寄存器中哪幾個寄存器可以拆開使用?段寄存器的功能與其它寄存器有什么不同?如果DS=3000,(AX)=FFEE,內存中數據如圖所示,則執行下列指令后,AX,AL內數據是什么? ①MOVAX,2000;②MOVAX,[2000]; ③MOVAL,[2000]; ④MOV[2000],AX ⑤MOV[2000],AL02HF2HFFHEEHEFH8EH7FH31FFE32004MOV指令已學mov指令的幾種形式:

mov寄存器,數據

mov寄存器,寄存器

mov寄存器,內存單元

mov內存單元,寄存器

mov段寄存器,寄存器總結:操作數存在方式

在微型計算機中,操作數可能以以下三種方式存在:

操作數包含在指令中

MOVAX,1234;ADDAL,2

操作數包含在CPU的某一個內部寄存器中

MOVDS,AX MOVBX,AX

操作數在內存的數據區中:MOVAX,[2000];MOV[SI],AXEA可以由以下各種情況構成:

直接地址—包含在指令中的16位地址偏移量。

間接地址—由CPU內部某個16位寄存器的內容決定,如

BX、BP、SI、DI

基址—基址寄存器BX或BP加上指令中包含的8位或16位位移量。

變址—變址寄存器SI或DI加上指令中包含的8位或16位位移量。

基址加變址—由一個基址寄存器BX或BP加上一個變址寄存器SI或DI,再加上指令中包含的8位或16位位移量。

注意:*DST不能是

CS*DST、SRC不能同時為段寄存器

MOVDS,ES*立即數不能直接送段寄存器

MOVDS,2000H*DST不能是立即數*

DST、SRC不能同時為存儲器尋址*DST、SRC類型(長度)要匹配通用數據傳送指令MOV加法指令ADD

ADC

INC

加法指令:ADDDST,SRC

執行操作:(DST)(SRC)+(DST)

帶進位加法指令:ADCDST,SRC

執行操作:(DST)(SRC)+(DST)+CF

加1指令:INCOPR

執行操作:(OPR)(OPR)+1注意:*除INC指令不影響CF標志外,均對條件標志位有影響。減法指令SUBSBBDEC減法指令:SUBDST,SRC執行操作:(DST)(DST)-(SRC)帶借位減法指令:SBBDST,SRC執行操作:(DST)(DST)-(SRC)-CF減1指令:DECOPR執行操作:(OPR)(OPR)-1注意:*除DEC指令不影響

CF標志外,均對條件標志位有影響。add和sub指令同mov一樣,都有兩個操作對象。它們可以對段寄存器進行操作嗎?

mov、add、sub指令尋址方式循環指令LOOP循環指令:LOOPAddr循環條件:(CX)0循環次數:(CX)執行步驟:

(1)(CX)←(CX)-1(2)檢查是否滿足循環條件,如滿足則跳轉到Addr處,實行循環;不滿足則IP不變,退出循環。

溫馨提示

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

評論

0/150

提交評論