1樓:匿名使用者
我給你乙個乙個的解釋吧。
8086 cpu是乙個跨時代的產物。
為什麼要定址,因為本來計算是 0和1而來的。
定址也就是在對應的地方找到他。
不是定址方式多。。
乙個人找東西,不就有多種多樣的。最終的目的是找到東西。
基址 可以說一棟房子。
偏移 可以說一棟房子,裡面的物品。
方法是 直接找 還是等下找 還是先找其他的東西, 這個就要看你了。 這就是看你要不要用他。
例子。比如乙個人物身上有: 帽子 手錶 襯衣 秋褲 拖鞋 錢包 錢 硬幣 。
他在長沙.可以去地球上所有地方
長沙在地球上。
基址 比如是地球。0x0000 0001
位址偏移 長沙。 0x0042 4419位址偏移 進他房間。0x0000 0001 長沙的第一棟房子位址偏移 找到他。
0x0000 0005 他是在房間裡面的第5個人位址偏移 找錢。 0x0000 0007 他身上放錢的地方。
到了最後就知道他有多少錢了。
但是我找他 可以直接找他的房子,
我也可以**聯絡他叫他過來。
定址方式不多。看你要實現什麼。。
老師教了那麼多。也就是定址的觀點不同方法不同。。
比如你有自己的定址方式可以自己 取個名字也是可以的。
定址是相對的,對應的某樣東西,或者他不是東西 只是乙個數值。
不是使用什麼方法。
上面的例子可以說是定址過程。
暫存器間接,
先把要找的東西放在 暫存器 中 等下再找叫 暫存器間接。
使用方法的意圖是。
我去房間找東西 到門口得時候他,門打不開要鑰匙。 可以把房門的位置 放在暫存器中。
先去找鑰匙 , 找到鑰匙了。 把房門的位址從暫存器取出來。
在接著找房門。
儲存器間接 是想對的。
暫存器是乙個東西,可以記錄一些相關的東西。。。
2樓:匿名使用者
這個是應付考試的,沒用處的。
我是自學的彙編,這些東西太亂了,沒學。
如果你想應付考試,那就把書上的東西死記硬背。分數到手就可以忘記它了。
如果想學點東西,那就越過去吧。不用管它是什麼定址方式,能看懂程式,能寫出程式才是硬道理,扯這些就像孔乙己說的回字有四種寫法一樣沒用。
彙編中ip是什麼東東啊?有什麼具體的意義?
3樓:
instruction pointer,即 段,用來儲存將要執行的下一條指令的偏移量。
【意義】
16根位址線只能直接定址2的16次方個位元組:偏移量
定址方式。cs也是cpu內部的乙個暫存器。用段加偏移量的方式可以定址1m位元組。一條指令(資料)再記憶體中的實體地址等於對應的段值×16再加上偏移量
ip。這裡涉及到8086處理器的定址方式。這樣作的原因是為了擴大16為位址線的定址空間.**段暫存器,用來存放當前程式**段的位址。
cs。ip暫存器是cpu內部的乙個暫存器.指令指標暫存器:code segment
4樓:
ip:instruction pointer.指令指標暫存器。ip暫存器是cpu內部的乙個暫存器,用來儲存將要執行的下一條指令的偏移量。
cs:code segment.**段暫存器。cs也是cpu內部的乙個暫存器,用來存放當前程式**段的位址。
這裡涉及到8086處理器的定址方式,即 段:偏移量 定址方式。一條指令(資料)再記憶體中的實體地址等於對應的段值×16再加上偏移量。
這樣作的原因是為了擴大16為位址線的定址空間。16根位址線只能直接定址2的16次方個位元組。用段加偏移量的方式可以定址1m位元組。
5樓:天之魔神
cpu 通過兩個暫存器來指向**段
cs:ip 這兩個暫存器就是用來表示當前要執行的機器指令在記憶體中的位置
彙編的間接定址怎麼理解呢?
6樓:亂七胡說八糟亂想
可以算是指標的概念,也就你在組合語言中所用的那個暫存器中放的是乙個位址數,你這條語句所操作的是這個數的位址中的數。
7樓:匿名使用者
只需要記住,間接定址中運算元是資料的家庭住址,而不是資料本身。
(資料的)位址=指標=(所佔有記憶體塊的首)位址
常用"常量[暫存器+常量表示式]",即帶有中括號與暫存器的形式出現:資料的位址=(位址)常量+暫存器值+常量表示式值;其中的「常量」通常就是定義的符號標誌,其編譯本質都是代表乙個位址常量
彙編中的定址是怎麼個意思
8樓:聚發稿網
movax,1234;立即數定址mov[1000],ax儲存器直接定址movbx,1002;立即數定址movbyteptr[bx],20;基址定址movdl,39;立即數定址incbx;暫存器定址mov[bx],dl;基址定址decdl;暫存器定址movsi,3;立即數定址mov[bx+si],dl;基址加變址定址mov[bx+si+1],dl;基址+變址+立即數定址movwordptr[bx+si+2],2846;基址+變址+立即數定址
彙編中直接定址與擴充套件定址的區別
9樓:閒逛神遊
(3) 直接定址方式(dir,direct addressing mode)
直接定址指令,字長二位元組,它可以對儲存器的起始256個位址($0000~$00ff),叫記憶體直接頁(或記憶體第0頁)進行訪問。指令的第乙個位元組是操作碼,第二個位元組是運算元位址。在直接定址中,cpu自動把$00作為運算元高位位址,第二個位元組作為運算元的低位位址,其定址範圍為$0000~$00ff。
下述指令屬於dir定址方式。
lda $60 //將儲存單元$60中的數取至累加器a
brset和brclr是2條很特別的3位元組指令,它們用直接定址方式取得運算元,用相對定址方式指明轉移目的位址。例如:
brclr #3,$50, a1 //若儲存單元$50的第3位=0則轉至標號a1處
brset #3,$50, a1 //若儲存單元$50的第3位=1則轉至標號a1處
(4) 擴充套件定址方式(ext,extended addressing mode)
擴充套件定址指令是三位元組指令,可訪問儲存器中的任何位址。在這種指令中,第乙個位元組是操作碼,第二個位元組是運算元的高位元組位址,第三個位元組是低位元組位址。擴充套件定址是相對於直接定址方式而言的,其定址範圍為$0000~$ffff,比直接定址範圍大得多。
下述指令屬於ext定址方式,因為它的位址已經超過了 dir定址方式的範圍。
lda $023d //將儲存單元$023d中的數取至累加器a
特別說明:實際程式設計時,程式設計師不必考慮是直接定址還是擴充套件定址,匯程式設計序會自動識別,主要區別在於彙編產生的指令長度不一樣。
組合語言的定址方式怎麼判斷?
彙編的變數是什麼定址方式?
10樓:紀令秋始職
bl暫存器定址,a是立即定址
定址方式有六種:暫存器定址,暫存器間接定址,變址定址,基址加變址定址,立即定址,直接定址
11樓:匿名使用者
是直接定址.
比如,mov ax, [200h]; 用變數代替[200h]
學彙編的時候為什麼要學定址方式?
12樓:匿名使用者
這是基本要求啊!
不學定址方式,怎麼能學彙編呢!
而且學了這東西,在學高階語言(特別是c語言)的時候有很大的幫助的!
13樓:匿名使用者
彙編是一種機器語言
當然就得學定址方式
組合語言中運算元定址方式有哪些,各自有什麼特點,怎麼區分呢
根據教育部考試中心頒布的全國計算機等級考試大綱,62616964757a686964616fe78988e69d8331333264653465 pc技術考試的基本要求有 熟悉80x86微處理器的結構 原理及其巨集組合語言程式設計。上機考試操作語言為 組合語言。筆試考試內容之一 微處理器與組合語言程...
組合語言高手指點一下定址中段暫存器使用的疑惑
1 段地址是cs,可以自己測試下 測試程式 sseg segment para stackdw 16 dup 00ffh sseg ends dseg segment tt db asdfasdf y dw dseg ends cseg segment assume cs cseg,ds dsegx...
組合語言中db指令的意義,組合語言中DB指令的意義
db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 message db hello 此時,字串 hello 中每個字元會佔用1個位元組,51微控制器中,用於定義位元組的內容。db 指令以表示式...