Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Не могу въехать, как это все работает 01.12.02 17:06 Число просмотров: 1232
Автор: pup3 Статус: Незарегистрированный пользователь
|
1. Поправь меня (помоги перевевти места, где вопрос стоит ,- или на слолвах объясни, что там делается).
#include <dos.h>
REGS rg;
char CmdLine[100], * Cmd="LOAD", TMPCmdLine[100];
union {
unsigned char far * p_line;
unsigned int a[2];
} Un;
void main (int argc,char*argv[]) {
// ? Move(Mem[PrefixSeg:$80], CmdLine, Mem[PrefixSeg:$80]+1);
unsigned int a=0,b=0;
// CmdLine := #80 + Cmd + CmdLine + #13;
TMPCmdLine[a++]=80;
while (Cmd[b]!=0) TMPCmdLine[a++]=Cmd[b++]; b=0;
while (CmdLine[b]!=0) TMPCmdLine[a++]=CmdLine[b++];
TMPCmdLine[a]=13;
// R.ax := $AE01;
rg.x.ax=0xAE01;
// ? R.cx := Mem[PrefixSeg:$80];
// R.dx := $FFFF;
rg.x.dx=0xFFFF;
// R.ds := Seg(Cmd);
Un.p_line=(unsigned char far *) Cmd; a=Un.a[1];
// R.bx := Ofs(CmdLine);
Un.p_line=(unsigned char far *) TMPCmdLine; rg.x.bx=Un.a[0];
// R.si := Ofs(Cmd);
Un.p_line=(unsigned char far *) Cmd; rg.x.si=Un.a[0];
_asm {
mov ax, a
mov ds, ax
}
// Intr($2F, R);
int86 (0x2f, &rg, &rg);
}
ЗЫ 1: Ссылку на Ralf Brown's IntList (или другую доку на основе которой ты свою прогу писал)
не мог бы дать .
ЗЫ 2: Если твой дамп - экзешник, то где у него сигнатура MZ ?
|
|
|