![]() |
China DOS Union-- Unite DOS · Advance DOS · Grow DOS --Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum |
| Guest | Log in | Register | Members | Search | China DOS Union |
|
中国DOS联盟论坛 The time now is 2026-10-31 06:41 |
47,815 topics / 349,930 posts / today 0 new / 48,290 members |
| DOS开发编程 & 发展交流 (开发室) » Address Issue of Program Segment for Files Larger Than 1M |
| Printable Version 2,191 / 1 |
| Floor1 pkuwc | Posted 2010-01-22 17:01 |
| 初级用户 Posts 12 Credits 36 | |
|
Currently, a difficult problem, hope all the bosses can help take a look.
Problem description: An executable file A.exe outputs a string in graphics mode, and calls outtextxy in bgi16.dll to output the string. I rewrote outtextxy, passed the pointer value of the string to my custom interrupt, and wrote the address into the file in the interrupt. During operation, it is found that the offset address is correct, but the segment address is far away. A.exe itself is more than 1M. Through IDA analysis, it can be seen that the segment address at the string is almost breaking through FFFF, but the value obtained by the interrupt is only about 350, which is obviously incorrect. I hope the bosses can give pointers. |
|
| Floor2 pkuwc | Posted 2010-01-29 15:53 |
| 初级用户 Posts 12 Credits 36 | |
|
I'll reply to myself. Finally, I found that this program uses DPMI. DPMI is the abbreviation of DOS PROTECTED MODE INTERFACE. Through it, applications can enter protected mode and achieve direct addressing of the entire physical memory (greater than 4G). When creating a project in BC 4.5, DOS (16-BIT DPMI) and DOS (32BIT DPMI) created are DPMI applications, and their operation requires the support of rtm.exe and dpmi16bi.ovl.
|
|
|
[ Contact the Union admin team -
中国DOS联盟 -
Standard version ] Sponsored by ifanr Inc | © 2001–2023 |