彙編問題,求人指點

2023-01-03 05:40:12 字數 562 閱讀 8850

1樓:匿名使用者

在8086中,如果不指明某一個段的定位型別,則編譯器預設為para。也就是說,段的起始地址位於可用的第一個節的邊界處(每個節為16位元組)。

舉個例子,假設有如下**:

name1 segment

db 0

name1 ends

name2 segment

db 0, 1

name2 ends

常規上來說,name1段只有一個位元組,name2段只有兩個位元組,因此完全可以把name1和name2在記憶體中毫無間隔地順序儲存,便於節省空間,但這對編譯器的要求太高了。

編譯器的處理方式是將name1放在一個節的起始地址處,將name2放在另一個節的起始地址處,兩個節以16位元組為邊界對齊。那麼即使name1僅含一個位元組,也要佔用16位元組儲存空間。毫無疑問,上面定義的兩個資料段共佔用32位元組的儲存空間。

這裡可以作一個歸納:一個段定義的位元組數如果不超過16位元組,則佔用16位元組的空間;如果大於16小於32位元組,則佔用32位元組的空間,因此是(n/16+1)*16,對n/16取整後計算。

彙編簡單的問題,簡單的彙編問題

ob4h對應的二進位制是10110100,第一位是符號位,為1。如果看做無符號就是10110100,換算為十進位制就是180,如果看做是有符號則是 0110100,換算為十進位制就是 76了。11h對應的二進位制是10001,補全8位就是00010001,第一位是符號位,為0。如果看做無符號就是00...

彙編基礎問題

1.這個沒有什麼通知不通知的,cpu就是一個能夠自動提取記憶體中的指令並執行指令的東西,cpu是電腦的大腦,cpu是命令其他硬體的 2.cpu的t指令是利用cpu的陷阱中斷來實現的,這個中斷是這樣的 cpu每執行完一條指令,就觸發一次這個中斷 r指令應該也類似,不過我不敢確定 使cpu進入陷阱中斷的...

彙編子程式的問題,組合語言子程式是如何定義的

這不是返回自己本身迴圈執行,而是跳轉到子程式的第一行迴圈而已,有什麼不可以的,迴圈結構,任何地方都可以的。但有一點,子程式不論迴圈多少次,最終必須執行一行返加指令ret,也就是子程式必須要有一條ret指令,你的子程式最後是缺少一行ret指令的,加上了就可以的。組合語言子程式是如何定義的?這樣定義的 ...