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...