1樓:匿名使用者
首先,你先要搞清楚8086的定址方法,即如何訪問記憶體空間的。8086的記憶體定址空間是2的20次方,也就是說,如果想一次性找到記憶體的正確地址,就需要20位的暫存器,但是,8086提供的暫存器只有16位,所以他提供了另一種方法訪問記憶體,就是段地址加偏移地址的方法。段地址一般有段暫存器提供,在8086中段暫存器有cs、ds、ss、es四個,分別是**段暫存器,資料段暫存器,堆疊段暫存器和附加段暫存器。
其中各個暫存器的作用不在這裡贅述,一般彙編書都有詳細介紹。
下面說一下他的定址方式。8086的暫存器只有16位,也就是說,他能直接訪問的空間是2的16次方,為訪問記憶體,他吧記憶體分段,每段最大的長度是64k,即2的16次方,注意,我這裡說的是最大長度,並不是說每段長度就是64k。段裡面的地址就是偏移地址,在你的問題裡,就是bp提供的,他還需要一個段地址,來確定要找的記憶體的段的位置,這需要段地址提供,在你問題裡,是ss提供的。
還有,說一下為什麼要乘以16的原意,注意下,16正好是2的4次方,也就是說,一個二進位制數乘以16的話,正好相當於這個二進位制數左移4位,一個16位的二進位制數左移4位剛好是20位,也就是說,他可以表示2的20次方了,這樣他就能對1m的地址空間定址了,但低4位都是0,也就是說只這樣子的話,第四位的空間我們不能訪問,這就需要偏移地址了。偏移地址長度也是64k。
8086訪問記憶體實體地址,計算方法是段地址*16+偏移地址。你問題裡的ss提供的就是段地址,bp提供的就是偏移地址。
ss指的是一個段暫存器,他指向的是堆疊段。
最後說一下,我不知道你學的是哪本教材,不夠我覺得學彙編還是應該從暫存器學起,學到用堆疊,即ss,應該是中期的時候了,所以其中很多基礎的東西你還不明白,我推薦王爽的那本《組合語言》,清華大學出版的,比較適合初學者,另外ibm pc 組合語言程式設計:第五版也不錯,可以試試。
2樓:
那我來幫你把。希望你能看明白:
首先,我告訴你ss和sp都是8086的暫存器,它們都是16位(16bit)的。而且push和pop所操作的物件都應該是16位(16bit=2b 也就是一個字)因此說oprd 是16位運算元。
其次,ss是棧暫存器,裡面存的是段地址,sp是棧頂指標,ss:sp指示的就是棧頂指標具體的實體地址(cpu會用ss乘以16加sp算出實體地址),乘以16(十進位制)就是乘以10h(16進位制),因為8086的資料匯流排是16位,而地址匯流排是20位,這個20位就是用16位的段地址和16位的偏移地址(棧中偏移地址就指sp)移位後相加合成的,16位段地址ss左移4位二進位制(即乘以2的4次方或者說乘以16的一次方)和16位偏移地址sp相加是棧頂指標實體地址。其中sp是英文stack pointer(堆疊指標)縮寫。
最後,你說的那個小於其實是個賦值符號「←」,是把右邊的值賦給左邊。
3樓:匿名使用者
ss指堆疊段暫存器
sp指堆疊指標暫存器
ss:sp指向棧頂
對於你提到16ss不太明白。
我也是剛學彙編,看的是王爽的《組合語言》,寫得很適合於自覺,可以在網上下到pdf電子書,上面講得很容易懂的。
一些小問題2,一個小問題?
1.根據句意填寫空缺的單詞。2.改為同義句。the moment a good time選擇題 d改為同義句 wrong with at the moment 其他不知道,不好意思。一個小問題?20 是的,說明你的水放太多了呢,導致黑涼粉 不能凝固完你加的水,一般外盒上都是會有比例的,一般粉和水是1...
關於組裝電腦的一些小問題
如果只要這個配置的話!2000可以買到!cpu散盒是指沒有帶風扇的單cpu,盒裝cpu有風扇!所以快取下的硬碟就會寫得頻繁些!因此對硬碟傷害就大些!現在的主機板一般都是整合聲,網絡卡!至於這款顯示卡沒用過不知道!不過我可以告訴你選顯示卡!視訊記憶體高的不一定好!還要看主頻跟位數!只有這三者都比較平均...
精神情緒上有一些小問題
去爬爬山吧,去登那種很高的山,然後把一切不快的事都大聲叫出來,接下來去玩玩過山車,旋轉飛車,笨豬跳,我相信你會開心很多的,其實去鬼屋也是不錯的選擇,在鬼屋你把一切不是順心的都大聲叫出來,沒有人會知道,只是以為你很害怕,叫出來心裡會順暢很多的,試試吧。去死吧,死了就沒問題了 感覺很多啊,念頭像潮水一般...