بــســم الله الرحمن الرحـيـم

History

30th December 2007

6:36pm: филологи могут дальше не читать...

У меня возник вопрос.
Среда:
DOS(реальный или виртуальный)
BC++ v3.1.
Зову: farmalloc()
Он возвращает 4 байта, которые следует интерпретировать как двухбайтовый сегмент и двухбайтовое смещение. Т.е. тип (void far*).
Посмотрел как это компилируется. И возник у меня вопрос: что если смещение 0xFFFF или близко к тому? Нужно ли об этом заботиться или всегда можно положиться на вменяемость farmalloc()?

Как он компилирует - повесться можно...
Например:
2559:2673 EB06     JMP     267B
2559:2675 FF4EF2   DEC     WORD PTR [BP-0E]
2559:2678 FF4EFC   DEC     WORD PTR [BP-04]
2559:267B 8E46F6   MOV     ES,[BP-0A]
2559:267E 8B5EF2   MOV     BX,[BP-0E]
2559:2681 26       ES:
2559:2682 8A07     MOV     AL,[BX]
2559:2684 B400     MOV     AH,00
2559:2686 0BC0     OR      AX,AX
2559:2688 74EB     JZ      2675
Powered by LJ.Rossia.org