PDA

View Full Version : tai mot chuong trinh len bo nho



tran_tung
29-10-2004, 16:13
tôi có một chương trình con đã tải vào bộ nhớ, tôi đã tính toán được địa chỉ của chúng làm thế nào để dùng chúng khi chỉ có địa chỉ thôi

freegianghu
29-10-2004, 16:51
tôi có một chương trình con đã tải vào bộ nhớ, tôi đã tính toán được địa chỉ của chúng làm thế nào để dùng chúng khi chỉ có địa chỉ thôi

Thế này có chạy không nhỉ?



asm
{
JMP 0x012345678
}

bete
29-10-2004, 17:45
Tui nghĩ nếu xài asm như freegianghu mà chương trình con lấy tham số vào thì mình cần nhớ đẩy tham số vô stack trước khi jump. Và khi đẩy tham số thì cần coi kỹ quy ước về thứ tự (hình như C1/C++ đẩy từ tham số cuối ngược về tham số đầu thì phải (& ngược với Pascal)).

Hoặc có thể thử: giả sử thủ tục con (hoặc hàm) đó có khai báo là
int f(char a, float x, int n, char*p) thì mình khai báo 1 biến (kiểu con trỏ tới 1 hàm):
int (*pf)(char a, float x, int n, char*p) và khởi tạo pf (xài địa chỉ đã tính toán). Xong thì gọi (*pf)(.......) hoặc pf(.......)

(có gì sai sót xin các bạn chỉ cho, cám ơn rất nhiều)

-thân

9m4re
30-10-2004, 12:52
+Nếu chương trình con nằm trên segment khác thì bạn fải xài
JUMP FAR youraddress