2010-10-16 23 views
7

Tôi là một chút nhầm lẫn như phân khúc chính xác những gì được sử dụng khi bạn có x86, lắp ráp như (cú pháp Intel) dưới đây:Phân đoạn nào được sử dụng theo mặc định trong x86 gián tiếp địa chỉ?

mov ax, [di]

tôi khá chắc chắn nó wouldn' t là phân đoạn mã, tôi đang nghĩ phân đoạn dữ liệu hoặc ngăn xếp? (Hoặc là phần ngăn xếp của phân đoạn dữ liệu?)

+3

Thông thường 'DS' (Phân đoạn dữ liệu). Ngăn xếp sẽ là một phần của 'SS' - Phân đoạn ngăn xếp. 'SP' và (tôi nghĩ)' BP' là những cái mặc định là 'SS' trong khi hầu hết các hoạt động khác mặc định là' DS'. –

+0

Ok, điều đó có ý nghĩa. Đừng cho rằng bạn biết địa chỉ trực tiếp trong dòng này sẽ chỉ ra điều gì? \t gọi ptr xa 2480h: 0DB0h – PeterBelm

+0

Điều đó sẽ phụ thuộc rất nhiều vào chế độ bạn đang lập trình. Real Mode? Chế độ được bảo vệ? –

Trả lời

10

DS là mặc định, ngoại trừ BP lập chỉ mục sau đó SS được sử dụng. Ngoại lệ này là để giảm bớt việc sử dụng khung ngăn xếp (ENTER/LEAVE hướng dẫn). Các hướng dẫn chuỗi cũng có cách sử dụng phân đoạn cụ thể.

+3

'SP' cũng lập chỉ mục ra khỏi' SS'. –

+1

Bạn có thể trích dẫn tham chiếu cho điều này không? Tôi biết nó là đúng, nhưng không thể xác định nó trong hướng dẫn tham khảo IA-32 ở bất cứ đâu. –

+0

Bên cạnh việc làm quen với tất cả các hướng dẫn, nơi tốt nhất để xem là bắt đầu của Vol.2, Chương 2. Cụ thể, Bảng 2-1 đến 2-3. (Ít nhất là trong hướng dẫn tôi đang xem.) – bitRAKE

Các vấn đề liên quan