找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 28452|回复: 11

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。1 `+ ?' V/ @8 s! D

* H- r  Z8 k( I3 R. @) a这是C的
  1. /********************************************************************
    5 T) U& j0 ~; x9 h
  2. *    File: DOS4G.H                                                  *
    3 G& d. [# g' m# S' O1 U2 C
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    . U2 X/ Z$ U7 I! h3 o% S' H
  4. *                                                                   *- {  f( w1 n( a3 S! J# ]. Y+ A! a
  5. *    ========================Title===============================   *
    % ~* P& c$ S* O$ c" l
  6. *        这个函数是让系统进入DOS 4G模式                             *( v* x4 y) O' C2 k% H: f/ Y
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *9 ?+ @0 m7 b5 ^3 K
  8. *                                                                   *
    5 V6 @; v% A- D( _' c" v# }9 w4 V5 w3 l
  9. *       使用: openA20(); set4gb();                                  *
    & s8 k' \$ R+ p7 [" R
  10. *                                                                   *
    - t! H! E2 x8 G, {: \6 [+ |, `1 Z
  11. *   ===========================History==========================    *
    6 o. U& |% c" T. g/ M4 T7 V% _4 R
  12. *    author: bini                                                   *
    ; W& T9 }4 @& q! v0 l
  13. *      date: 2004-11-30  Frist version.                             *
    + Q' C8 G: c6 t* s9 i. _6 |
  14. ********************************************************************/) C: m( {$ z& m
  15. 2 g& W2 S& J2 C5 O
  16. #include <conio.h>2 p& b5 B# A9 w! B- t
  17. #pragma inline
    ! S$ ~7 G2 {% [5 A) r7 i0 G
  18. + k. F# u4 c6 ]  [7 |& v% m4 Y$ N) k
  19. /***********************************************! D; P8 T( _) @. y
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    " e  ]+ f0 R8 D# X& {0 |1 X
  21. *    第二个为一个数据段,没有代码段。           *: S1 I7 b$ E7 ]+ x! e6 l. @  f
  22. ***********************************************/' _$ i7 O- r, Y! B$ J
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/5 k3 P4 L% Z5 X
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, * l! i/ U9 h1 h* Z) S! w
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF ( ?) ], ^3 p( `! h& f8 p3 w) Y) L' m' P
  26.                                       */7 f7 K. z7 k9 H/ y2 ~4 R
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    # n' t( h" E% G3 Q8 u
  28.                                          最高字节为 base( bit 24~31 )7 `( m, p# R- |8 ]2 R& w
  29.                                          % I* I% r8 l8 ]" U7 m% M
  30.                                          属性Attrib = 0x8F92
    5 ^* C& g( [9 e% I8 M4 b/ E: r  j  B" o
  31.                                          - s$ m" @5 r8 ?- d. b
  32.                                              属性位Hibyte低四位为 . i% }8 a+ ^$ ]2 Q
  33.                                                  Limit( 16~19 )=F
    0 G/ ?5 c, ?! N. o6 y( p
  34.                                              属性位Hibyte bit7 为粒度
    5 ?! \: U) Q8 [0 ^
  35.                                                  (值1=4KB粒度)
      N. y6 H/ o1 f: a
  36.                                                  8F & 0x80 = 1# Y, d3 B, @- T: Y9 Y8 T
  37.                                                  7 ]( D: @/ |1 H: ?
  38.                                              属性位Lowbyte低四位为段类型,值=2) s  k' d$ c; t0 d+ I  m
  39.                                                  表示为可读/写段. }- C; l" ^# W  z0 R8 e1 X% r0 L7 [
  40.                                              属性位Hibyte高四位=9,bit3=1表示:/ o, M1 C5 x% ^4 p7 K# ~5 E: h2 x& i) G
  41.                                                  描述符对地址转换是有效的。
      f* D8 `1 i1 }9 B: g
  42.                                                  bit0=1表示为:% G' p. n1 \) I# a$ D4 v1 R1 p
  43.                                                  系统段描述符。而不是门描述符。
    , j. ^$ [* H/ m5 h& f0 u, Z
  44.                                              
    / I- X( C8 @2 v
  45.                                          *// e2 _) P) I0 h4 g/ H! B1 g

  46. 2 }2 _, `' w2 T
  47. /****************************************3 R6 b' o' F( v2 o* x% v! m
  48. *    GDTR寄存器, 48bit=6bytes            *
    * L2 U3 _! Z6 V# k1 [8 g3 i
  49. *    +-------------------------------+   *; H: y0 H3 B, \! o* D  y/ y: `
  50. *    |   32bit基地址       |16bit界限|   *( c' d; e# @( X' \0 x
  51. *    +-------------------------------+   *) a) h' v% x; \1 K0 h& A
  52. ****************************************/
    & |2 ?4 A, [+ A' z5 S2 l2 }
  53. unsigned char GDT_Addr[6]={0};" d; p/ P4 v- f+ v6 f! d# q

  54. 9 r, M8 K# K4 k- ^' J9 c0 B
  55. /****************3 Z" [5 r& i) j1 D2 W
  56. *    打开A20门    *4 N6 x1 `0 L5 U4 D. V5 e
  57. ****************/0 q  X  ^& @7 T
  58. void openA20(void)
    ( v0 q! l5 N  A' ?( f
  59. {
    1 Z# N' M3 I1 V9 K' n& V
  60.     asm{. ~# a+ J/ C: Y
  61.         pusha2 w! t. J, p$ y9 G2 \
  62.         in         al, 92H
    5 R. `2 d6 i4 k& i0 o' t
  63.         or         al, 0x026 q3 E% G# t9 ?) Z* @& [; Q$ [
  64.         out        0x92, al! ?! e4 a; F9 g( [3 g% _
  65.         out        0xed, al
    , Y9 v) M* V8 a0 E5 b9 |
  66.         popa; d. ]: U  t* ^3 ^; e+ D
  67.     }
    ) j( [+ y' Z2 \7 C! o" i
  68. }  v2 ^% v8 R( ], ]
  69. * D2 |7 @! L7 Q1 R
  70. /***********************************************
    4 f6 U: J$ j4 q, q) b* a& r" ~# w
  71. *    函数功能:进入DOS4G                       *$ l1 x5 A0 W( F& M9 h6 \
  72. *    ====================                      *. T3 c, X$ Y# \: J
  73. *                                              *
    ' M5 O0 E: x0 H' s
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *2 E9 e9 Z) e2 }' M9 l
  75. *   如:                                       *
    4 u& [' U0 E! y# k7 n
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *% R; b/ @; d$ Y( k  `) l. H* D
  77. *       表示为 2个GTD                          *
    0 \  M$ B2 Z1 @0 h: s
  78. *                                              *
    , j& ?5 K* F7 V) N' O
  79. *    选择子为所在描述符内的字节偏移。          *
    / M( O5 ~& z: a* A$ O
  80. *                                              *" B! Z+ ?9 h$ R% L4 C1 o
  81. ***********************************************/
    0 D1 V$ {3 n1 h( v0 W0 M3 c) ?
  82. void set4gb(void)
    7 t! }" s* n7 v
  83. {! g3 t6 |1 Y$ N  W% m' ^! ]
  84.     asm{) a: Q/ y" d9 _  N- f% x
  85.         cli
    / j' g+ S: b$ T$ H8 S! c
  86.         /****************************************- c# h5 X9 d* C" y6 O# M( U
  87.         *    GDTR寄存器                          *
    ( V2 N+ ^6 \- A
  88.         *    +-------------------------------+   *- j$ H' t  r" ^) |' e1 _" j; J9 l7 ]
  89.         *    |   32bit基地址       |16bit界限|   *6 j: e6 G$ P7 F4 B- d0 k
  90.         *    +-------------------------------+   *' L4 @' K* V4 U7 U: u
  91.         *****************************************/
    4 P- _- M; i7 t" y
  92.         /*********************
    + l* x/ A+ n9 q( c% L
  93.         *        得出段界限       *+ j1 I! K, J# D  Z7 N# j: R+ O
  94.         *********************/
    3 W6 _2 p( h$ |- r
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    5 n4 |9 D( d6 J( B% U
  96.         /********************************************
    ) Y. j: _% }- |
  97.         *    计算GDT表的32位基地址,存入GDTR        *, o; l$ p8 X" y* r. E2 y
  98.         ********************************************/
    4 o, o. y( l) T6 Z8 Y( M
  99.         mov        eax, ds
    , E6 \0 F" @- r, ~
  100.         shl        eax, 45 t2 f+ t5 t, \# |
  101.         xor        ebx, ebx1 D0 G" U$ D, g4 l" }
  102.         mov        bx, offset GDT_def! M8 j" j( m, C! U; L# U
  103.         add        eax, ebx2 c" k( b& |5 C& H# h) p* |
  104.         mov        dword ptr GDT_Addr[2], eax
      h* o: x7 u" d) s
  105.         lgdt       fword ptr GDT_Addr9 q& j3 y3 E" S5 ~/ X4 Y4 f2 L
  106.         /********************8 e% J/ U( C; S6 P
  107.         *   选择子偏移      *3 M5 O% U6 N! N* [% w, T: L1 ]. Z
  108.         ********************// l( r1 y! s2 [+ ?  @. ~! ]( [
  109.         mov        bx, 8( _. ?0 H/ i5 q
  110.         mov        eax, cr0  F4 f" Q( A& X" D
  111.         or         al, 13 o: V0 O; i; p# M6 j$ o
  112.         /**********************
    , @: R$ P" L+ N* e( x3 g+ p+ i
  113.         *     进入保护模式    *
    3 @: `7 U8 e7 ?$ I
  114.         **********************/8 a% \: G, i' u' R
  115.         mov        cr0, eax
    6 U0 r0 a6 z8 |! a' _( P4 l0 n
  116.         jmp        pMod3 c  M* y# ]- C
  117.     }
    & _, C$ p0 I# |! Y5 o  H  G7 p
  118. ! k& {" s) L7 o6 e& B( x
  119.     pMod: asm{
    $ a; i6 W0 }. f" Q1 \
  120.            /************************************************************
    ! M4 F; ]6 R. t/ y, ^; a8 M
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *- _" j& X7 @8 a0 P5 L. Y
  122.            ************************************************************/
    ) E3 m) `# t/ y$ h" B$ u" S( t
  123.         mov        fs, bx
    - `9 D6 E# d# @' h8 x  W9 L
  124.         mov        gs, bx4 `7 l6 U; L: ]7 ]& r2 k. k
  125.         and        al, 0x0FE% U5 {9 S4 {/ h: F/ c
  126.         /******************* S* z* j& ^: R" Z( R& m$ `6 K5 T
  127.         * 进入实模式      *
    ! T7 k& h6 L) @
  128.         ******************/
    6 U' \3 P$ L" B' I1 h
  129.         mov        cr0, eax; x* y2 a( [8 e
  130.         jmp        rMod
    & D& A9 Z/ N0 n) Z% H+ b8 d  k4 {# U
  131.        }
    ! z% n( \" U( E1 B  C/ U

  132. # B, w9 p  x# A) H3 r# L. }# i( f
  133.     rMod: asm{' }. D) F  [  w6 b) v# o( v
  134.         /* ******************************************************************! L5 ~. P; k  F0 Z+ g% G! x
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    5 n4 e2 Y( v' s+ B
  136.         ********************************************************************/3 Y# M: |7 T. i
  137.         mov        ax, 0
    % f6 V3 f7 _% _' C4 T
  138.         mov        fs, ax& b4 K+ F( f5 @# |1 x6 \, I& s; A5 ]
  139.         mov        gs, ax; ^' c( s' G% _/ q6 a
  140.         sti
    " D+ M6 k3 L) ?! M
  141.     }
    7 x- ^- T0 }2 J/ ~. Z" J  b  C$ Y
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    % l, f5 ]& f2 _6 E8 I: R4 e
  2. ;*    File: DOS4G.asm                                                *. r1 W: y& D1 }% M; v3 k
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *) e- H% W. ^. J3 P1 |5 h7 [5 p
  4. ;*                                                                   *% k9 Z) z. F) x2 ]: R5 a9 h
  5. ;*    ========================Title===============================   *" o* y3 c3 m) F$ l; a0 w( x0 O' ?2 ]
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
      f# V! A6 |3 s3 R( ]
  7. ;*                                                                   *
    . U  M5 r+ x. x9 x4 g3 S
  8. ;*   ===========================History==========================    *! `% H/ ~) C- [3 [6 k7 u
  9. ;*    author: bini                                                   *% R- a. v. v8 X' `& @5 p( Z+ Y5 H* o
  10. ;*      date: 2008-10-08  Frist version.                             *
    5 ^9 }( M  W1 i% W
  11. ;********************************************************************/ ! G! ~+ ~) }$ B( _9 c
  12. .model small
    0 E' _- S7 j4 w. f& u
  13. .586p
    ' ?& ~' h* W2 P$ D

  14. ( O4 \% O' F6 G
  15. DSEG  SEGMENT   USE16                 ;16位数据段
      i% E9 m, y$ _( I- }

  16. . x5 \. h" h7 W* p( E
  17. DESC            STRUC
    5 G8 u; k$ G- ~1 C$ t
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    / \% k/ N, h* a# [. A
  19.         BaseL           DW      0 ;段基地址(BIT0-15)8 Q( L" K6 X( ^/ i0 i
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    2 \2 l, q+ s# `0 J
  21.         Attributes      DB      0 ;段属性* P+ d3 x, G0 j2 x( I  J
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)" v! F" F, T8 w3 z
  23.         BaseH           DB      0 ;段基地址(BIT24-31)) T% }+ O  K7 ~- p
  24. DESC            ENDS0 A3 `9 R/ y8 w; s  I2 j! Z! H

  25. ) ?, a. b, Y0 r& s  H
  26. PDesc           STRUC
    ! k! ^  S- X+ \. Q
  27.         Limit           DW      0 ;16位界限; ]! @# I- r2 g3 P. k4 j6 g
  28.         Base            DD      0 ;32位基地址
    " z- b; ^" q; _3 F0 s7 U: Z2 e
  29. PDesc           ENDS
    9 W& A1 c8 z9 L. y7 ?6 X
  30. 4 ^. v# @/ x6 F3 U6 G, x% z
  31. GDT_def         Label   Fword# ]( ~; Q9 |0 D( T7 X* M
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    / M: D' S( l$ t
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ' T9 q' R7 M$ _/ L/ I

  34. " \0 r% U7 [$ U4 Z4 V1 r
  35. GDT_Addr        PDesc   <$-GDT_def-1, >1 g) D: m# j/ X; ^* w5 h2 a
  36. DSEG            ENDS                          ;数据段定义结束; o/ o/ Y6 A& o! |1 w6 X

  37. 2 R- `9 {. e& L9 W8 R: L
  38. CSEG            SEGMENT USE16                 ;16位代码段$ p! c% ?3 j$ L$ q, q9 U
  39.                 ASSUME  CS:CSEG,DS:DSEG
    7 [) d; `/ ^2 M, e9 ?4 B# r  n& E
  40. .Startup
    # M$ E; q4 Q5 X" q( i: I2 M2 u* n; U
  41.         call      Set4gb
    , S( F8 G/ h7 m6 H; k) p% _5 w/ s
  42. ;9 q: o7 X2 @6 x
  43. ;       fs, gs即能访问4GB空间
    9 E: |0 f! F. P* v6 j$ O% d
  44. ;       write your code in here.
    " H& }0 ~8 r; i, p
  45. ;6 w0 i) x1 q% e0 i+ W
  46.         .exit
    5 V4 C! j  d( c" c4 U
  47.         
    6 V4 A. |' O3 w' N& C& b2 t
  48. Set4gb          PROC      NEAR
    9 v* r4 M! c0 `0 p% o" X2 M- W% T/ `# \% k
  49.         in        al, 92h5 e$ ^5 H3 c/ J+ z
  50.         or        al, 002
    5 }) \( D5 f: Q- v! y: H( ~
  51.         out       092h, al
    " U1 r2 X2 t( R6 H- j! m  {; d
  52.         out       0edh, al
    ; e6 N, g9 C3 Q. \  g# A

  53. / |7 ^* [5 w+ R: @/ w
  54.         cli
    ! {2 @) q  @7 N3 f
  55. 5 S2 c5 n' o! C9 e& Q
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    . \, b- v# \! L7 S) l
  57. " t. t6 Y5 r8 b5 u! F% V# F) I
  58.         mov       eax, ds
    * }, j* E% z( \6 e2 N
  59.         shl       eax, 4
    ! z& ~2 ?5 B# w6 M# s
  60.         xor       ebx, ebx
    / ~% y! t' o: R" s! e2 C( ?
  61.         mov       bx, offset GDT_def( `9 r  t) R4 N( \4 ]
  62.         add       eax, ebx: M$ s3 X& I- A( u( B4 |1 M: k6 \1 d
  63.         mov       dword ptr GDT_Addr.Base, eax' s. B8 }; i) [2 T
  64.         lgdt      fword ptr GDT_Addr
    ) W3 x- r9 |; P/ e0 f9 s/ S! ^4 {
  65. - o% D2 _% I- W& o9 v" ~
  66.         mov       bx, 8
    + J" C  g; j8 s8 E' |
  67.         mov       eax, cr07 ^- \; v9 `# h4 r: D( E0 H
  68.         or        al, 1
    2 N! T; e  W$ y6 [0 |' U/ t
  69.         mov       cr0, eax+ v& m4 o% V9 `. U

  70. & W! o' N3 x7 ^# @4 W0 c
  71.         jmp       pMod( V( T6 v# S9 r+ N
  72.     pMod:
      p, u: Z) W/ W  v4 e+ n: i
  73. # Q  ]0 p/ W$ @9 ^7 v" X
  74.         mov       fs, bx) |3 h8 X0 C1 {; o% f5 ~
  75.         mov       gs, bx' Y8 a2 }0 Q6 g! R
  76.         and       al, 0FEh
    1 p9 e( C/ V& _, Q2 s' A
  77.         mov       cr0, eax& V: e0 p, G8 G( C( x: t7 {
  78.         
    / R6 ~& S9 v. Z
  79.         jmp       rMod
      U0 t/ ?6 E0 F* d2 ?! G- f$ W
  80.     rMod:
    + c1 O8 X2 Q# n" y; U7 f* a
  81.   T. r/ \: o+ ^9 E+ S
  82.         mov       ax, 0- s$ {- S( c' J( K
  83.         mov       fs, ax
      I! a( C, q) }
  84.         mov       gs, ax
    8 R8 U8 a  h3 b$ W9 _6 {
  85.         
    3 S' Y! |* V+ F
  86.         ; 在2M的位置测试写一下数据( V8 i. t% O$ p, }5 S/ v/ u
  87.         mov       esi, 200000h
    - V1 W- r: C. b) G7 c1 o+ H! j
  88.         mov       dword ptr fs:[esi], 055aa55aah
    ; U: Z* ?/ T( }
  89.         ; 用RU去看看200000h的位置是否是此数据....
    : g8 p) S" N2 x' s/ ^! B

  90. 1 [% J$ z7 M' v# e& I! h6 X7 F
  91.         sti6 i- i) e: D7 F5 H5 W
  92.         ret9 f( o6 w# }! ^3 _6 e
  93. Set4gb  ENDP
    & M  w; \) f9 k& I. w9 \1 O' N6 y; U
  94.       
    7 e& O" G0 _* c
  95. CSEG           ENDS                              ;代码段定义结束! H) K% X5 r4 I! y4 v/ P
  96.         end
复制代码
发表于 2008-10-14 14:48:07 | 显示全部楼层
学习,学习了,楼主辛苦了
回复

使用道具 举报

发表于 2008-12-15 17:20:53 | 显示全部楼层
有一个问题,我用BC31为什么没法编译32位的汇编指令呢?要设置哪儿吗?
回复

使用道具 举报

发表于 2008-12-18 17:11:16 | 显示全部楼层
option->compiler->advanced code generation中的instruction set选 80386
4 W' c; t4 C  b' i5 o. x6 B) B5 |, j
option->compiler->code generation中的option选中, [X] compile via assembler
- H: e- k( d( E$ m
& o6 z5 b, v  C5 P[ 本帖最后由 happybasic 于 2008-12-20 15:41 编辑 ]
回复

使用道具 举报

发表于 2009-6-4 20:55:40 | 显示全部楼层
太强了 学习 只是更新的比较慢哈 谢谢了
回复

使用道具 举报

发表于 2009-6-5 11:04:27 | 显示全部楼层
Undefined symbol: &LT
回复

使用道具 举报

发表于 2009-6-8 17:07:20 | 显示全部楼层
Null_Desc       DESC    &lt;     0h,  0h, 00h, 00h, 000h, 0&gt;
) H. N0 C& P- B7 |+ XData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
# |/ A  ~. ^- S1 P& @4 a2 W) a. s
5 }- \. l3 S! z' ^4 [  `GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
5 X6 B: Q( b7 L8 I* }3 t 替换如下,2 M" b( b) B/ @7 s+ O3 a
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>% p3 _0 Z( e' a: ?
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
: Q1 v5 R& S6 S8 q8 N* o
: M  a" V1 n9 ~GDT_Addr        PDesc   <$-GDT_def-1, >. |5 {# I, X$ z
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 2009-6-9 11:23:21 | 显示全部楼层
替换了就OK.Thanks
回复

使用道具 举报

 楼主| 发表于 2009-8-1 00:44:39 | 显示全部楼层
这个是Discuz的Bug.有空翻出来改改看。发代码<>符号被Discuz 在[ code ]里变成HTML的东西.
回复

使用道具 举报

发表于 2010-2-26 10:47:24 | 显示全部楼层
原帖由 happybasic 于 2008-12-18 17:11 发表 & a( J! f( Q8 j
option->compiler->advanced code generation中的instruction set选 80386
3 ^" Y5 v8 d6 M* s# s; R- |6 B; _9 A/ r
option->compiler->code generation中的option选中, [X] compile via assembler

  X1 K/ O) o' L: C  z3 b   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
. v1 w: A: _1 w; v+ I
& H# l+ X. u& V  \0 I( g$ ]   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
- V% {4 w1 u1 F

1 B7 ~' t; n. _. [& l7 X6 ?' X我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;  Q2 ?; X0 ?4 c$ w# t2 H2 _. L( _9 h
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2025-5-22 02:31 , Processed in 0.047672 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表