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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。. N+ ~( `; V5 q/ c3 D# o
' _" j6 i7 C( v6 q7 x
这是C的
  1. /********************************************************************) j- e# ~1 L$ l: W
  2. *    File: DOS4G.H                                                  *7 w+ E' C  \5 c0 D/ p
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                ** a5 B1 ]* S% M& Y2 {7 R; W! [
  4. *                                                                   *
      f2 d+ I% P5 m8 ?* @
  5. *    ========================Title===============================   *
    - T4 e7 w: |! B
  6. *        这个函数是让系统进入DOS 4G模式                             *
    + _( A+ H+ O7 ^' ?! m+ H
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *- o- e+ B, U+ q$ m3 o9 q5 y
  8. *                                                                   *2 ?+ `, j3 h, a0 S  Z& @
  9. *       使用: openA20(); set4gb();                                  *5 f( j/ E' u7 k8 s9 W
  10. *                                                                   *
    ! b1 O/ v- r, ]) B
  11. *   ===========================History==========================    *
    % B' v' ?3 F- @, ^8 L; r
  12. *    author: bini                                                   *
    - S, s! J9 p+ T: I/ r9 ~+ o
  13. *      date: 2004-11-30  Frist version.                             *9 U5 A% q' J' g, r* x
  14. ********************************************************************/4 S5 C4 i) h, R1 z6 y& k" F, i

  15. , g$ p. H# W- A% Y- R- U
  16. #include <conio.h>( a- L  Z) g1 k4 l& h, K$ l  D7 U+ C
  17. #pragma inline
    2 J( H/ P/ C, I) a( z8 A
  18. $ I$ Z0 |$ G9 k# v
  19. /***********************************************
    7 A8 S* q8 F' G
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    % L1 P1 O6 N5 X0 D9 S# {0 U4 r" ^
  21. *    第二个为一个数据段,没有代码段。           *
    . S2 J5 b% L) `- B* i
  22. ***********************************************/( m8 U9 n" C4 u" d! I
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    9 K5 i# I* J2 c3 n& f6 B
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, 6 P5 f  P0 e. p& l; W# o: J4 ?0 A
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    ( R) |7 ]3 O" j# b; d: G9 }
  26.                                       */
    ) e9 ]. C1 ^& |6 x6 l
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )  D2 z! c' C. g5 Z) \  v0 s3 F0 [
  28.                                          最高字节为 base( bit 24~31 )
    7 o8 r. c' B- `
  29.                                          & a+ g8 f# K) J- |6 i
  30.                                          属性Attrib = 0x8F92
    9 d9 g+ J; o8 \& n
  31.                                          
    ; a( Y- ]% w" h7 O7 C1 `
  32.                                              属性位Hibyte低四位为
    6 v% O5 u& Z7 h/ @
  33.                                                  Limit( 16~19 )=F6 h, b# E$ Q4 K; s9 p  e. B" [
  34.                                              属性位Hibyte bit7 为粒度- z" c% s4 X4 X1 p8 F
  35.                                                  (值1=4KB粒度)
    4 u: Q' v3 p; {" g
  36.                                                  8F & 0x80 = 1
    4 V) c7 ^) B) ?  [8 i# E8 p& x
  37.                                                 
    " ?6 u5 ~, j2 Y2 f' p% q
  38.                                              属性位Lowbyte低四位为段类型,值=24 p& W& t2 H. R8 f# H* t7 c& P7 T8 d
  39.                                                  表示为可读/写段
    , t' a  \4 p5 s+ c1 H
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    5 ]  n5 R- o7 S: z
  41.                                                  描述符对地址转换是有效的。
    ' p/ J: ?4 V* X6 t  R# A
  42.                                                  bit0=1表示为:0 t1 c3 i. F) [; Q6 Z. q
  43.                                                  系统段描述符。而不是门描述符。2 R" B3 e: g/ q" ]/ }+ H
  44.                                              
    : l7 v9 @+ H8 I( t8 ~& K
  45.                                          *// k) g" u6 b$ o8 l4 K

  46. / v& N1 @8 v9 h3 |% ]+ a2 G! i
  47. /****************************************
    3 h1 \' O9 j- B+ M- x5 a, ~
  48. *    GDTR寄存器, 48bit=6bytes            *$ y0 a$ A1 f) r# q
  49. *    +-------------------------------+   *& i8 C+ W) e/ D% J+ y5 n' p# z, c: H
  50. *    |   32bit基地址       |16bit界限|   *
    6 d: F; x1 J  L% V. K9 N8 Z& s
  51. *    +-------------------------------+   *
    * A, `; d  v8 ?, {
  52. ****************************************/8 e5 U% O5 N1 c8 t  j/ ~7 R
  53. unsigned char GDT_Addr[6]={0};
    0 [0 j) q& t5 R: ]5 Q: c

  54. 8 B% p! G0 y" x9 F
  55. /****************$ A- v+ b$ y7 }& T
  56. *    打开A20门    *
    2 r* @' C# N- A! y5 v; `1 x* }
  57. ****************/
    , o8 ^! G; s' m5 b, G$ }2 J
  58. void openA20(void)
    8 c( i% B. j# N# P2 D- D
  59. {6 b, B3 ~  [+ C- F
  60.     asm{
    8 ?; P0 k8 r6 X
  61.         pusha: Q4 l) B  f9 i
  62.         in         al, 92H! ~7 z" o6 W& K  a
  63.         or         al, 0x025 O2 u, l" W. g4 i
  64.         out        0x92, al
    + z/ P3 K( O/ @( P& g4 P$ l2 r/ _( A
  65.         out        0xed, al
    " a- O+ o3 m0 O1 t
  66.         popa8 a8 j3 w3 g# u& d
  67.     }! {/ k# z+ c  d: \2 Y
  68. }
    / J  I' y2 \# A

  69. * y! r' }* s+ {3 @
  70. /***********************************************' d! l# Z3 z( i1 |# p
  71. *    函数功能:进入DOS4G                       *7 f: C3 `) d2 e) L
  72. *    ====================                      *
    0 o/ ~6 {0 V# Y7 a' C
  73. *                                              *
    6 o2 W2 b9 c( N) J8 _( e
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    ! Q* k8 q9 J6 m
  75. *   如:                                       *6 m% F0 j3 x8 m0 }' j4 C" t
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    3 G' W7 J) D$ z8 f7 ^" E
  77. *       表示为 2个GTD                          *2 e5 I6 o) _. e/ F/ X
  78. *                                              *
    " W6 _8 F9 D: R4 D& {1 L. _& `3 l
  79. *    选择子为所在描述符内的字节偏移。          *# [6 j* L2 \8 A! h5 n  K5 s
  80. *                                              *
    / N- w9 ^' w  T, z% w2 n
  81. ***********************************************/
    0 Y+ z# A3 {+ `; l, |+ T
  82. void set4gb(void)
    : ~+ F. R6 j: f5 a5 \
  83. {
    9 S9 E3 R1 w6 G/ n* L+ V7 o9 K
  84.     asm{: T) c8 n$ `( H; j7 q0 U+ v9 j
  85.         cli
    7 G+ @" a3 v' X/ t9 o* T. e
  86.         /****************************************  P3 f1 q0 A4 `1 I" u  n
  87.         *    GDTR寄存器                          *
    : O5 p/ L. I' U0 K+ F& G& X3 `* x
  88.         *    +-------------------------------+   *! e6 z/ k& p: G; s3 }
  89.         *    |   32bit基地址       |16bit界限|   *, ~( f+ G) C. G2 N$ x
  90.         *    +-------------------------------+   *
    - e6 i7 {2 n; Y
  91.         *****************************************/
    8 J- B  B( P! o
  92.         /*********************  q- ^& d/ ^3 q- N! R; }6 s
  93.         *        得出段界限       *
    : a7 j" i% I' v8 _* \; X. \- H
  94.         *********************/4 j. i+ Q/ k5 S0 m8 K
  95.         mov        word ptr GDT_Addr[0], (2*8-1);- r+ i+ ?! ~0 y9 d8 h0 m+ o
  96.         /********************************************
    % N% Y* e; _1 ?8 X2 j1 I
  97.         *    计算GDT表的32位基地址,存入GDTR        *- z, s7 M' ~3 u/ N- z
  98.         ********************************************/7 r% n' [  }% R& e* c
  99.         mov        eax, ds+ Y7 o3 R+ z' D# ~' ^) p9 g
  100.         shl        eax, 4* N2 B/ b: n4 i0 e, D
  101.         xor        ebx, ebx
    - e0 J* s6 n# a
  102.         mov        bx, offset GDT_def- n' v0 t2 y+ W2 a
  103.         add        eax, ebx
    8 F/ |) d2 G) H3 b2 H
  104.         mov        dword ptr GDT_Addr[2], eax' k$ E, X* z  J- t
  105.         lgdt       fword ptr GDT_Addr- L% e& l$ N. j
  106.         /********************
    / L# n3 o9 a+ |& `; O
  107.         *   选择子偏移      *4 V- \) `1 Z) R# q! M# E. z# z
  108.         ********************/
    9 |* k6 i% O; u5 x
  109.         mov        bx, 8& U% q( D8 x) z, J, ~5 d2 Y! h- D" u
  110.         mov        eax, cr0% E6 {# @0 [: q. Z. P
  111.         or         al, 14 e! {; u9 P; Z0 t
  112.         /**********************
    ; Z, H1 r; Q* W; [9 E1 j4 V2 e
  113.         *     进入保护模式    */ B9 N, I3 J/ ~9 H; a8 e- w
  114.         **********************/3 L( z( ?# I2 K0 y9 e5 B# S7 }3 Y
  115.         mov        cr0, eax( z* E! S* X% O9 Q. j4 ]0 I. l8 H) r" M
  116.         jmp        pMod
    ( W: S$ C" c/ f, d6 h4 F
  117.     }$ Y2 L, q; O6 Z

  118. ; E& ]& z. k. _
  119.     pMod: asm{4 \9 E4 v% d5 Z* d8 m
  120.            /************************************************************+ t* Z0 B' J) ~7 N% ?# }
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *4 P2 B! ~/ D3 Q0 N$ o8 u9 t
  122.            ************************************************************/
    ) y' t$ }+ X7 M4 v- ^1 w
  123.         mov        fs, bx1 S  ?; [+ i$ z1 t- G$ j
  124.         mov        gs, bx
      v2 O5 u. b( ~& l& k- f5 ], i
  125.         and        al, 0x0FE
    5 m( A, ]2 l' W( y1 J/ h
  126.         /******************
    ' i: o9 A% h* b' ?1 I
  127.         * 进入实模式      *, ?" Y! ~- j8 z+ a& v* }6 Y
  128.         ******************/( N+ @4 c0 q  k0 Z( X7 a) D; X
  129.         mov        cr0, eax5 C8 m! I$ _0 b1 Y( f' _. h) Z
  130.         jmp        rMod
    3 F4 v- u# X3 U
  131.        }
    2 u. z" ^+ D" @% v5 o# w, I
  132. , T& z/ ?+ a1 ~
  133.     rMod: asm{  n2 T2 `; X! m% n0 W4 z# R' t# L
  134.         /* ******************************************************************+ \& o* }& Z) z/ H
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    # l+ k2 Z) g: W: C6 [
  136.         ********************************************************************/
    4 o& \3 c4 h6 R5 s# N' U# t. H
  137.         mov        ax, 0& K- N+ |0 I6 Z  ^/ v) s
  138.         mov        fs, ax
    4 e) Z7 i  t* `7 J$ t
  139.         mov        gs, ax, W2 h0 i5 N6 N) q+ G( u0 d% l
  140.         sti
    ) H8 k2 r' b" [+ ~2 i0 D& |* ^7 d/ h
  141.     }
    / x& K2 N+ n& B0 F
  142. }
复制代码
这是asm的
  1. ;/********************************************************************" x: Q- r) y8 W, v* Z2 t
  2. ;*    File: DOS4G.asm                                                *
    9 U1 {+ i/ w" m& t
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    3 m  H$ L& i0 O1 P2 v. B
  4. ;*                                                                   *
    5 @$ [: X) Y/ @1 p
  5. ;*    ========================Title===============================   *' G" H- m& z- D3 x7 T: E3 c) T
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *3 i4 m6 P: I0 [) q8 H8 M4 X
  7. ;*                                                                   *
    9 ~0 X/ r- _7 Y2 I, P; X; Q
  8. ;*   ===========================History==========================    *
    3 P0 T- C/ i% L. V
  9. ;*    author: bini                                                   *) B  U% J% z2 h0 u- h# y
  10. ;*      date: 2008-10-08  Frist version.                             *- _- o* o! F+ |1 g
  11. ;********************************************************************/
    ; u3 c. x7 n& w9 J+ s5 c' S( I
  12. .model small, G. U+ L( G! D% g: \! O
  13. .586p) x' o$ o4 O7 e  I9 D

  14. 7 d% A; h' V( E& Y
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    ( m0 w7 ~  b- e3 O- C
  16. 7 B  h7 m$ R' N$ |! Y7 T
  17. DESC            STRUC
    " ~" B3 R. b5 |, b# \0 }9 j/ T
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    8 X4 Z! M( o. R2 O8 {1 H0 A
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    * ^$ T4 G5 d7 g' P$ _
  20.         BaseM           DB      0 ;段基地址(BIT16-23), k8 |9 ?7 a1 m' @5 x% N
  21.         Attributes      DB      0 ;段属性; {6 l) g' {6 h1 S' A4 h8 x7 A0 D
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)/ q! T0 M9 x8 H1 P3 b
  23.         BaseH           DB      0 ;段基地址(BIT24-31)2 }- \( V, V0 Y! M1 c+ o1 Q* Y
  24. DESC            ENDS$ N' ~1 z1 ]' [% i* x  i' o& Z
  25. 9 T" i1 I9 j' k7 B! S: |5 Q( o
  26. PDesc           STRUC9 H2 h* A" |2 K6 y1 a# }
  27.         Limit           DW      0 ;16位界限8 v" s0 x* Y5 N
  28.         Base            DD      0 ;32位基地址- \8 v* a$ j$ }# Y
  29. PDesc           ENDS
    ' t+ k4 Y# K" o' Y: W

  30. 4 v3 j$ z! d6 [1 _' S' m# i
  31. GDT_def         Label   Fword3 l5 o% h, {  t- T
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    ( S* u4 g4 l, L' Z
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    $ S2 R2 H4 G7 L, Q) _) e

  34. : i* W. @! b* i4 H( a* Q# C
  35. GDT_Addr        PDesc   <$-GDT_def-1, >; b6 t5 |6 k7 {. F  k5 q
  36. DSEG            ENDS                          ;数据段定义结束
    ; g: |+ b# P  o! F9 T7 N+ x6 {
  37. 5 ?) f6 Q! g# h, }* U' W
  38. CSEG            SEGMENT USE16                 ;16位代码段
    . q, N. E+ y+ F
  39.                 ASSUME  CS:CSEG,DS:DSEG
    0 m6 c( ?: D$ v& a9 C# A$ V
  40. .Startup
    + }6 C5 K8 Z$ g) L7 W1 n7 x/ V; s
  41.         call      Set4gb) t3 H" L* K( ^3 v. x" @, c, Y
  42. ;
    5 C  o) R' |# _/ P$ }9 U$ @
  43. ;       fs, gs即能访问4GB空间  K$ {4 B3 o" f7 Q& j
  44. ;       write your code in here." j1 E1 ?6 d+ c# H, T2 u5 t
  45. ;, x  M- n6 q% D$ o6 [3 d+ V0 w3 @
  46.         .exit, C2 s7 J8 Q6 b
  47.         0 K3 \+ U5 s$ i* U# G
  48. Set4gb          PROC      NEAR& P9 B5 W: X$ I( ^% y! D1 O
  49.         in        al, 92h
    7 S( n+ i: ]! P% T" D+ k0 e7 F0 m
  50.         or        al, 002$ N$ g+ t; L" u4 j
  51.         out       092h, al/ u* N4 i7 U9 h$ ^% ?) m' i5 Z8 @9 m+ J
  52.         out       0edh, al
      V6 E+ Z1 X- `

  53. 7 [! m7 L& V- ^; w
  54.         cli
    - o+ A; A% U* f0 A) f( T$ Y
  55. 6 M! E% D9 j1 N) i
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    5 f3 j- c2 d. U  j1 |4 \
  57. # @1 w5 C. H, i4 N3 i/ h
  58.         mov       eax, ds
    : ^" s+ {) D( W9 Q  v, G
  59.         shl       eax, 4
    - o4 N7 `7 l! q+ f% R0 Q0 A- I+ ^
  60.         xor       ebx, ebx2 T. S" e$ t: A4 T
  61.         mov       bx, offset GDT_def
    ) D( y+ c# i8 C6 E! @3 o
  62.         add       eax, ebx
    3 T6 y$ F  \' U5 _1 x
  63.         mov       dword ptr GDT_Addr.Base, eax
    7 d% X" H: `; P. `$ f
  64.         lgdt      fword ptr GDT_Addr
    7 H! O. L* u5 ^
  65. & l# q: [  `3 t
  66.         mov       bx, 8
    : @8 F$ \9 |9 f* j; k% p6 D7 y
  67.         mov       eax, cr09 U5 ]7 g! h$ {# z
  68.         or        al, 1& R* y) t) _( Z0 c: n9 Z& K' n
  69.         mov       cr0, eax
    1 g; N3 N4 m2 K  B6 B

  70. 7 a, `: N& I( y& ~3 ^' H
  71.         jmp       pMod
    7 C  r1 L) u7 |: P/ ~
  72.     pMod:
    5 u  w) I4 Q( L6 ?
  73. & t7 b3 b! C) |% k% w. k% W5 T+ @1 a9 ^
  74.         mov       fs, bx; {8 c3 G; S4 Y7 b3 w/ J
  75.         mov       gs, bx% z. n, t. W& V
  76.         and       al, 0FEh; ~  i4 U* k% d  J  w# x" l/ B6 H
  77.         mov       cr0, eax. N4 m7 S7 x2 _2 k9 W7 @2 h
  78.         8 ]$ }8 H5 y9 k: P) B
  79.         jmp       rMod! d$ y- `5 ^6 ^5 V2 E
  80.     rMod:6 ]: h/ [( L% T! y  S3 f0 z

  81. 5 I4 N4 i7 K( a# _3 B7 a) ?
  82.         mov       ax, 0
    & [3 ~/ x( K* i9 k- T
  83.         mov       fs, ax
    & V/ Z: A0 J, I; X
  84.         mov       gs, ax# a( {. J0 a# [0 P
  85.         
    9 v% u; e- P$ r. G! U) o8 Q" [
  86.         ; 在2M的位置测试写一下数据
    * @& P8 x* T) K; Y/ D2 L
  87.         mov       esi, 200000h
    6 V6 l' m) A* m2 }- b& Q
  88.         mov       dword ptr fs:[esi], 055aa55aah
    0 J- x4 z: p3 Y9 f5 G
  89.         ; 用RU去看看200000h的位置是否是此数据...., u. Y& s5 n# H6 m) a0 Z  N- W. a9 o

  90. # J( H  N+ i% \
  91.         sti
    ; h' f. S- s: g' r& C1 E3 z
  92.         ret
    5 R0 D3 A9 `2 O" T
  93. Set4gb  ENDP' N. D* u' V$ O* j! E
  94.        9 l$ o! }& W0 u5 x  \
  95. CSEG           ENDS                              ;代码段定义结束
    + n2 R8 j1 m# d  {7 _3 v$ v  _
  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选 803869 Y6 K: j% _( i# l& Y' B- \9 n
/ M* T. J# \9 Q
option->compiler->code generation中的option选中, [X] compile via assembler
! w3 O/ j" n) L; f1 [/ J3 M. D1 t8 i1 E  h2 @: N4 v
[ 本帖最后由 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;
7 T( k  J$ i. E2 O. e8 ?4 TData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
3 S1 e  {7 b7 _, {; |/ _: S) y7 o* C$ E% y/ ^2 G9 I
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;  x, Y' k3 N8 o
替换如下,8 W# ~5 Z* u% N7 k+ i1 {* G
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
% b& N7 P0 N- J0 i8 `Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
  M" b; C7 c: r3 l/ }" D& h" q3 N- v1 T5 `  }
GDT_Addr        PDesc   <$-GDT_def-1, >
4 ?% _; U  G; ~  _2 E+ i这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 5 C: {2 o2 ]3 h
option->compiler->advanced code generation中的instruction set选 80386
* E3 V8 U; V* }8 k1 h' d- C
! t$ ^" Y! S0 F! k+ ^+ boption->compiler->code generation中的option选中, [X] compile via assembler
4 ^- e* u& n6 m/ u. r, Z+ t
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
+ T8 {. q3 b: t
9 f) r/ S. ]6 h6 w7 Y1 q   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
* q; U' l/ e/ `2 ^
. u* x8 o3 a* r" e! E# I+ e
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;' w/ o" C4 d1 ?9 o
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 05:37 , Processed in 0.413586 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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