組合語言dsbx16是什麼意思

2021-03-04 06:14:42 字數 2784 閱讀 1798

1樓:幻想祕境

ds:[bx+16]指向一個記憶體地址

ds資料段暫存器是,[bx+16]是它的偏移地址,[段地址*16+偏移地址]得到一個20位的實體地址即ds:[bx+16]真正指向的地址

望採納!^_^

組合語言中[bx]表示什麼

2樓:披岸花丶落

您好,很高興為您解答。

[bx]表示的是一個偏移地址。

比如你ds=1000h的話。

mov bx,1

那麼 mov ax,[bx]

那麼他就會尋找 段地址1000,偏移地址為0001h 的資料放入到ax中

3樓:白雲深處是我家

mov ax, [bx]

[bx]這種方式叫做暫存器間接定址方式。

即把[bx]指向的地址中的內容,送入ax暫存器。

[bx]的計算:

實體地址 = (ds) * 16d + (bx)如:ds=0770h, bx=10h

實體地址=0770h*10h+10h = 07710h ,如果07710,07711這兩個位元組中的內容是5678,則執行後ax中的內容即是:7856h

4樓:逄俊賢聞凡

強制屬性操作符

在程式中,我們有時需要對同一個儲存單元以不同的屬性來訪問,或對一些不確定的儲存屬性需要顯式指定等,這時,我們就需要強制屬性操作符ptr。該操作符的作用有點象c語言中的型別強制方法。

對於指令:mov

[bx],

1h,其目標運算元[bx]是暫存器間接定址方式,它指向一個儲存單元。在作傳送操作時,是把「1h」擴充套件成8位作位元組傳送,還是擴充套件成16位作字傳送呢?這就使該指令具有二義性,因為[bx]指向的儲存單元可以位元組或字的首地址。

含有該指令的程式在彙編時,可能會產生警告或出錯資訊。

為了使指令中儲存單元運算元具有明確的屬性,我們可以使用強制屬性操作符ptr。其一般格式為:

資料型別

ptr地址表示式

其中:資料型別是前面所學的各種資料型別,常用的資料型別有:byte、word、dword、near和far等。

為了明確指令中儲存單元的屬性,可把指令「mov

[bx],

1h」可改寫成:

movbyte

ptr[bx],1h或

movword

ptr[bx],

1h在指令中用操作符ptr強制後,不管其後的地址表示式原資料型別是什麼,在本指令中就以ptr前面的型別為準。該強制屬性只在本指令有效,是一種臨時性的屬性,它不會改變原記憶體單元的定義屬性。

例如:w1

dw1234h,

5678h

b1db2db

5d1dd23456789h

…mov

ax,word

ptrb1

;把b1開始的二個位元組拼接成一個字,執行後,(ax)=0502h

movbh,

byte

ptrw1

;把字w1的低位元組傳送給bh,執行後,(bh)=34h

movch,

byte

ptrw1+1

;把字w1的高位元組傳送給ch,執行後,(ch)=12h

movword

ptrd1,

12h;把雙字d1的低字修改成0012h,執行後,(d1)=23450012h

上面指令中的強制屬性是臨時屬性,它不能改變這些變數在定義時的永久屬性。

組合語言:si、di、bx、bp、ss、ds分別是什麼?怎樣根據這些求實體地址?

5樓:匿名使用者

1.組合語言 si di bx bp ss ds 是什麼si: 16位寄存

器,源變址暫存器

di: 16為暫存器,目的變址暫存器bx: 16位暫存器(可分成2個8位暫存器bh,bl),基址暫存器

bp: 16位暫存器,基址指標暫存器

ss : 16位段暫存器,作用是存放當前堆疊段的段地址,一般和sp連用

ds: 16為段暫存器, 作用是存放當前資料段的段地址2.怎樣根據這些求實體地址

上面的這幾個暫存器跟求實體地址談不上關係.

有個公式: 實體地址 = 基礎地址 + 偏移地址 = cs*10h(基礎地址)+ ip(偏移地址)

cs: 16位段暫存器,存放當前**段的段地址ip: 存放下一條要執行的指令的偏移地址lz如有不明白的地方,可追問

6樓:匿名使用者

si、di分別是源、目的變址暫存器,bx是資料基址暫存器,bp是棧基址暫存器,ss、ds是段地址暫存器。

實體地址=段地址×16+偏移地址,指令中出現bp作地址,則其段地址為ss,否則就為ds。

組合語言比機器語言易於讀寫、易於除錯和修改,同時也具有機器語言執行速度快,佔記憶體空間少等優點,但在編寫複雜程式時具有明顯的侷限性,組合語言依賴於具體的機型,不能通用,也不能在不同機型之間移植。

彙編(bx)與 [bx]有什麼差別?

7樓:冰封之都

如 mov ax,bx

說明將bx暫存器中的值放入ax暫存器中

如 mov ax,[bx]

說明將ds暫存器中的值乘16+bx中暫存器的值作為地址,去取記憶體中這個地址的值,再儲存到ax中

8樓:魔法師00可可

bx指bx所存放的是直接使用的值

[bx]指用bx中存放的地址找到對應的值

,這個值是間接使用的

組合語言的DW是什麼意思,組合語言中的DW怎麼用,能舉個例子說明一下嗎

dw 是定義2位元組空間的意思。dw屬於彙編的一個偽指令,dw定義字型別變數,一個字資料佔2個位元組單元,讀完一個,偏移量加2。db定義位元組型別變數,一個位元組資料佔1個位元組單元,讀完一個,偏移量加1。dd定義雙字型別變數,一個雙字資料佔4個位元組單元,讀完一個,偏移量加4。彙編指令既不控制機器...

微控制器組合語言中是什麼意思,在微控制器組合語言中c是什麼意思

原地踏步的意思 等價於loop sjmp loop 代指本指令的 地址。如果sjmp 的起始地址是1010h,則在編譯的時候編譯器把 編譯為這專個起始地址屬1010h,就等於sjmp 1010h,執行完這指令後還跳到這個地址再執行它。無限迴圈直到微控制器沒電。指當前地址,可以有多種應用。比如 got...

在微控制器組合語言中c是什麼意思,微控制器組合語言中 CY AC OV 分別是什麼意思?

進位標誌位cy或布林處理器中的累加器。c為進借位標誌位bai,就是ducy 意思是兩數相加zhi addc指令 有進位就置c為1,兩數減dao subb指令 有借內位就置c為1,上面兩種請況c的置容1是系統自動的。另外還可以自己對c進行操作 指令如下 mov c,bit 將bit位地址中的值送psw...