TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

50: How can I write inline code?

 A: In Turbo Pascal 
versions prior 6.0 assembler code could not be
directly included in the code. Instead one had to assemble the 
code
into inline statements. Consider the task of rebooting the PC
(without disk closing and cache flushing).  The assembler code for
this is
  mov ax,$40
  mov ds,ax
  mov wo [$72],$1234
  jmp $FFFF:$0000
To assemble this code into an inline statement write the following
file calling it e.g. debug.in.  The empty line is important. Also
carefully note that debug assumes hexadecimal notation. Do not 
use
the $ designator in debug.in.
  .... begin debug.in, cut here ....
  a 100
  mov ax,40
  mov ds,ax
  mov wo [72],1234
  jmp FFFF:0000
  u 100
  q
  .... end debug.in, cut here ....
Give the following command
  debug < debug.in
You'll get
  0E9E:0100 B84000        MOV     AX,0040
  0E9E:0103 8ED8          MOV     DS,AX
  0E9E:0105 C70672003412  MOV     WORD PTR [0072],1234
  0E9E:010B EA0000FFFF    JMP     FFFF:0000
This translates into
    Inline ($B8/$40/$00/
            $8E/$D8/
            $C7/$06/$72/$00/$34/$12/
            $EA/$00/$00/$FF/$FF);
 A2: You can also utilize 
an inline <--> asm converter called
  36337 Apr 26 1988 
ftp://garbo.uwasa.fi/pub/pc/turbopas/inlin219.zip
  inlin219.zip Inline assembler for Turbo Pascal, w/src, D.Baldwin
It has two sources, inline.pas and uninline.pas which you can
compile to do the conversions in both directions for you. For
example, if you have a file test.asm containing the
  mov ax,$0040
  mov ds,ax
  mov word ptr [$72],$1234
  jmp far $FFFF:$0000
then "inline test.asm" will produce test.obj with the 
following,
expected contents
  Inline(
    $B8/$40/$00/           {mov ax,$0040}
    $8E/$D8/               {mov ds,ax}
    $C7/$06/$72/$00/$34/$12/ {mov word ptr [$72],$1234}
    $EA/$00/$00/$FF/$FF);  {jmp far $FFFF:$0000}
 

 Contents

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz