在學習組合語言的時候有這麼一道題不能理解,希望高手解答,謝謝

2021-05-05 20:11:37 字數 1398 閱讀 4838

1樓:佔野雲

1、mov cl,10

mul cl ;乘的結果存放在ax中

2、子程式引數傳遞方法有

暫存器傳遞引數、堆疊傳遞引數、制定儲存單元(記憶體ram)傳遞引數、call後續區傳遞引數

3、好像不好畫圖,就文字解釋一下也一樣。

1)mov ax,8057h

ss=ffa0h,sp=00b0h

2)push ax

ss=ffa0h,sp=00aeh,

ffa0:00b0=80h,ffa0:00af=57h

3)mov ax,0f79h

ss=ffa0h,sp=00aeh

4)push ax

ss=ffa0h,sp=00ach,

ffa0:00ae=0fh,ffa0:00ad=79h

5)pop bx

ss=ffa0h,sp=00aeh,bx=0f79h

ffa0:00ae=0fh ffa0:00ad=79h

pop[bx]

6)ss=ffa0h,sp=00b0h,[bx]=8057h

ffa0:00b0=80h,ffa0:00af=57h

xor ax,ax

add ax,789h ;ax=(0789 )h

sub ax,200h ;ax=(0589 )h

add al,ah ;ax=(058e)h

mov ax,0

add ax,110

mov cx,4

p0:sub ax,cx

loop p0:

ax=(64)h,cx=(00)h,cf=(0)

2樓:

這你個問題高手不願答,樓上三位又都是混分的。我也在學彙編,說一下我的理解

首先記憶體中的數字是按高高低的原則存放的,就是高位放高位元組,低位放低位元組:

如數字:0123h,在記憶體中表現形式為:

地址 內容

ds:0 23

ds:1 01

程式中入棧是以字為單位,出棧也是如此。

但如果是字串,如:'0123'

那麼在記憶體中就是:

地址 內容

ds:0 30

ds:1 31

ds:2 32

ds:3 33

也就是說和書寫順序是相同的

3樓:永星天恆

採用了小端儲存方式,在該儲存方式下,所有的的資料高位和低位都對調,這與程式沒什麼關係 。

比如儲存一個數字:0x12345678

在小端儲存方式下,地址從低到高儲存的資料依次為:34 12 78 56

在大端儲存方式下,地址從低到高儲存的資料依次為:12 34 56 78

如何學習組合語言,學習組合語言需要如何入門?

學習組合語言過程 一,要有一定的微機硬體基礎知識,因為彙編很底層,更加接近機器語言,往往很多的東西要從機器層面來支援理解。二,最好先學習一門高階語言,因為高階語言更接近人的語言,相對比較容易理解。掌握了一門高階語言後再學彙編,一來不易產生畏懼感,二來遇到問題,只能侷限於已學的彙編知識來來思考遇到的問...

學習組合語言的入門書籍有哪些啊,學習組合語言的經典書籍推薦?

學習組合語言,推薦王爽的 組合語言 本書最適合初學者 大多時候,一些初學者不知道應該讀什麼書入門,有一定基礎的開發者不知道如何進階。本文總結了一個c 優秀書籍清單,希望能夠為你帶來一定的幫助。因為多讀一些優秀的書籍,對於開發者穩固程式設計基礎 提高程式設計技能有很大幫助,這些書大多數都有中文版,並且...

學習組合語言選哪本書好

入門級 組合語言 推薦清華大學出版社王爽的 組合語言 很簡單,很好入門。書中內容的編排有一定連貫性,要用到哪部分知識就介紹哪部分知識。其它書籍不適合入門的原因是一開始就將所有的暫存器 定址方式列舉出來,記憶已經相當困難,何況是活用?所以還沒有體會到程式設計的快樂,就被推進了無盡的苦難中!如果需要學到...