回答
如果BP
是內存操作數中的寄存器,則默認段爲SS
。這可以用段前綴覆蓋。
但是,請注意,不存在使用BP-SI
的尋址模式。您可能輸入了錯字,正確的尋址模式是[BP+SI-80]
或[BP+SI+80]
。以下是編碼爲您比較:
8f 42 b0 pop [bp+si-80]
8f 42 50 pop [bp+si+80]
如果你的彙編interpretes 80
爲十六進制常量,它是
8f 42 80 pop [bp+si-80h]
8f 82 80 ff pop [bp+si-80h]
8f 82 80 00 pop [bp+si+80h]
注意[BP+SI-80h]
因爲有兩種方式來編碼它出現了兩次。
ohh,當然這是一個錯字,正確的是bp + si :) –
如果我有堆棧,即123h和DS = 4000h,SS = 1000h,SI = 1h,BP = 1111h,並且我有命令POP [BP + SI。所以word123h將被保存在[1000:1111] = [11111]? –
@ AdrianWaut差不多,但不是,你忘了添加si,否則你仍然誤解它。 (所有值都是六進制)'bp + si = 1111 + 0001 = 1112'=> [1000:1112 = 11112] = 23,[1000:1113 = 11113] = 01'。 – Ped7g
- 1. 16位彙編代碼中的OFFSET是什麼意思?
- 2. POP {PC}彙編
- 3. 16位彙編程序
- 4. 彙編:16位部門
- 5. 什麼是x86 16位彙編語言中的中斷69?
- 6. cmp在彙編語言中做什麼
- 7. XA彙編:16位立即數
- 8. 編譯器在這個彙編代碼中做了什麼?
- 9. ARMv5彙編中的PUSH/POP
- 10. 爲了使這個16位彙編到32位,我必須做些什麼改變?
- 11. 關於這個彙編程序在做什麼MOV的建議?
- 12. 如何防止彙編程序編譯16位應用程序?
- 13. 這個Cosine 16位函數實際上在做什麼?
- 14. 彙編程序中的代碼是做什麼的?
- 15. 不能在彙編程序中正確分隔,爲什麼?
- 16. 彙編代碼是什麼:mov edx,2,3,4是做什麼的?
- 17. 彙編計算正弦例子。 nasm 16 dos
- 18. 如何在彙編語言中添加兩個16位數字?
- 19. 在給定的16位序列彙編語言
- 20. bx lr在ARM彙編語言中做了什麼?
- 21. 我在powerpc彙編程序中做了什麼錯誤?
- 22. 爲什麼gcc在創建彙編代碼時這樣做?
- 23. 這條指令在彙編中做了什麼?
- 24. 3-operand imul指令在ia-32彙編中做了什麼?
- 25. 彙編語言 - sarq在代碼中做了什麼?
- 26. 這是寫入什麼彙編語言?
- 27. 不能得到16位彙編程序跳轉到0x1000:0x0000
- 28. 轉換一個16位的小數爲2位,在MIPS彙編語言補
- 29. 在x86彙編語言中CLD和STD是什麼? DF做什麼?
- 30. 如何使用NEON在ARM彙編中實現16位 - > 32位查找表?
後來因爲BP是基地。但是,您可能會拆解數據,而不是真正的代碼來完成某些工作。 –
請注意,它可能是'[BP + SI-80]'或'[BP + SI + 80]'。 「BP-SI」沒有尋址模式。 – fuz