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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。+ C! E/ P% A) b( Q9 t
2 ?: M: z1 D) g( x' y
这是C的
  1. /********************************************************************
    . f/ E3 X5 i- R# B
  2. *    File: DOS4G.H                                                  *5 t$ t7 U+ Q/ s
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *- C) @- S5 U. Q" k# E7 q
  4. *                                                                   *
    1 q5 p; K# ?# w8 s
  5. *    ========================Title===============================   *- o3 F: l+ b+ \! h, F0 B
  6. *        这个函数是让系统进入DOS 4G模式                             *& I1 M7 `4 V; ?3 ]! |; D( d
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    : _6 @* F- P8 a% w
  8. *                                                                   *! o% e, j4 J( h3 f- a7 p
  9. *       使用: openA20(); set4gb();                                  *
    ; a4 L  C" K2 f0 L4 v# x
  10. *                                                                   *
    . j0 q8 q& c, c( l: S% O* ?
  11. *   ===========================History==========================    */ c$ k7 W% V  Q$ E2 g2 T- q
  12. *    author: bini                                                   *
    $ U( X' @& g: |) D$ s% `
  13. *      date: 2004-11-30  Frist version.                             *
    9 K% I7 C# I& \+ v6 Q1 ]0 s9 p
  14. ********************************************************************/" `: b2 W; s! q1 c$ q) v( x
  15. 9 N' ^; `, p2 v* w  y. [7 l
  16. #include <conio.h>
    ' Q  Q3 }5 G5 V6 N! a$ v! _0 c
  17. #pragma inline4 c% G1 S/ t2 U
  18. ' }4 Z  h6 w. E: y% X/ l
  19. /***********************************************
    . d4 P; D, U7 n9 @3 Q
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    2 I4 m1 G' l$ M3 S
  21. *    第二个为一个数据段,没有代码段。           *7 y, [* N7 D+ W: H9 S6 A$ C) d
  22. ***********************************************/* n: d7 v# u$ Z1 d
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    ) C! e8 ?$ j7 F- s0 g# W+ {1 k
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    / M4 n' i. I1 n# H1 ?
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF ! S6 _2 I% q7 K( F% s- M% e
  26.                                       */& ?; z% [/ z: R
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )" ]8 |0 p3 P6 a0 O: R
  28.                                          最高字节为 base( bit 24~31 )
    $ @2 Z$ H' o8 D+ A2 @6 [
  29.                                          
    ' E7 g  e3 w. H. N6 f
  30.                                          属性Attrib = 0x8F928 B& S# ?1 Y! l8 o5 l
  31.                                          
    & g' j0 z( u% w7 d$ p, c5 Y3 i& b
  32.                                              属性位Hibyte低四位为 1 K! r- f' R( A3 v8 [0 L" h
  33.                                                  Limit( 16~19 )=F
    + W6 Y* |8 Y5 D1 ]- R% D; A8 e
  34.                                              属性位Hibyte bit7 为粒度" S' z2 C; S& s  l6 U" \
  35.                                                  (值1=4KB粒度)
    ! o+ n* F  u2 c
  36.                                                  8F & 0x80 = 1
    * N: ]9 i$ n$ `/ H  p- L9 y) N4 h
  37.                                                  9 @" z3 p$ G# Z  Y, ], B$ e
  38.                                              属性位Lowbyte低四位为段类型,值=23 J6 S% o- ^1 B1 }$ F# P) P9 B3 E9 r
  39.                                                  表示为可读/写段9 \& ^8 E, ]$ z5 o$ v7 M
  40.                                              属性位Hibyte高四位=9,bit3=1表示:* ~  Z1 `/ e+ p% `/ U3 D1 [
  41.                                                  描述符对地址转换是有效的。2 e. z' j2 @) X/ u) r2 T
  42.                                                  bit0=1表示为:
    * ?0 p5 f( g! K* D3 J2 }
  43.                                                  系统段描述符。而不是门描述符。/ n1 a6 k7 r. A* [' X0 K# n
  44.                                              
    ' F( i" d4 n5 }1 I6 \: H
  45.                                          */$ g7 [- \& M5 J; q& v" E
  46. / o; ]6 [" }: L# v
  47. /****************************************9 c9 x& s5 p$ s1 q
  48. *    GDTR寄存器, 48bit=6bytes            *
      A+ G$ O/ `2 c- \: E7 k: m
  49. *    +-------------------------------+   *
    # l. a+ p) N. f& @/ Y9 z
  50. *    |   32bit基地址       |16bit界限|   *8 C7 p( S0 u# q) n8 s9 n$ ]
  51. *    +-------------------------------+   *
    9 s; k+ p1 E1 \( R6 `0 ?0 W
  52. ****************************************/8 S( U! }% _  l: r
  53. unsigned char GDT_Addr[6]={0};
    . \" x7 Q2 u' _! U; v" q+ A
  54. $ E* U" r6 T2 Q5 C9 s7 y* H
  55. /****************! w; s# K% B- L+ Z# ~) h- g
  56. *    打开A20门    *
      t+ k3 E' u! n. [  q5 D
  57. ****************/
    # @) H5 b' p% Z7 Q
  58. void openA20(void)
    ! ]5 O2 s$ W( k
  59. {
    . W2 W4 g* \4 `# A& P
  60.     asm{
    ; [3 P+ [- h2 e
  61.         pusha& V) h! g4 x# }  B# I7 ~2 K8 Z& m
  62.         in         al, 92H1 ?& m& g$ l, R) l' n5 y: `& {. t
  63.         or         al, 0x02, i; s! e4 F" D" g5 h& E
  64.         out        0x92, al
    - V' u# \) C1 s: n. q9 a6 L- F: S8 t
  65.         out        0xed, al5 c# c* u* I1 m' G/ Q4 f2 o
  66.         popa" E7 B0 p; \2 G9 B$ l( p
  67.     }' h7 v: w- d; ?; R
  68. }
      {$ B, u- v6 n
  69. - N2 w' f9 P0 j* Y: M: i% z
  70. /***********************************************; q: R7 h* F9 y5 x1 v
  71. *    函数功能:进入DOS4G                       *" O, n$ \& E6 c$ ~2 ~! N# x
  72. *    ====================                      *, V/ M2 f4 x, d* O5 `4 p& c
  73. *                                              *) r" b) i# K$ Q! X0 Z3 h& Q( D8 }
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *5 B1 h! e& x5 H0 S0 L
  75. *   如:                                       *
    ; T1 X5 [3 y( Z; @' G1 p
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    # ]; h: T- R% d5 n) K! g2 g
  77. *       表示为 2个GTD                          *6 W7 I* J8 I; R6 e/ R2 d
  78. *                                              *
    ( S2 }$ O1 k. _9 E
  79. *    选择子为所在描述符内的字节偏移。          *! e  ?# v. r% A  P6 O' r! h; {
  80. *                                              *
    . P0 l" x1 j0 q! ]6 q( L7 n' ~
  81. ***********************************************/
    0 ~# s) v; c$ B  j+ ]
  82. void set4gb(void)/ A! V2 W$ j2 e: B
  83. {
    2 G2 ?$ G+ K% I4 G" T$ w$ X: T* K$ X
  84.     asm{/ }; B3 ^- v  S1 |
  85.         cli( v1 O& J) X/ z, f, ^/ t4 v- R* t
  86.         /****************************************
    : l9 |# X9 `7 }0 ~+ J% g0 p
  87.         *    GDTR寄存器                          *
    / `; w8 N/ i: Z# h9 ]; T
  88.         *    +-------------------------------+   *
    ' H6 i$ p2 [/ b" w/ S
  89.         *    |   32bit基地址       |16bit界限|   *
    ) D' _6 c( E( `; H3 z
  90.         *    +-------------------------------+   *
    6 K( Q8 T4 j. {) ?: M# A0 M& m
  91.         *****************************************/: s' u  |: N3 M: }& A& ^! q
  92.         /*********************
    4 I9 [- ^% `7 M
  93.         *        得出段界限       *( S8 v& t2 {" C: j6 [( a; E! `
  94.         *********************/
    4 f8 n; J; q+ O4 e3 E' p
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    ! e. Q0 f$ M) j+ K+ R1 [+ I
  96.         /********************************************
    % M6 v! w+ n" Q7 ?2 ]
  97.         *    计算GDT表的32位基地址,存入GDTR        *$ g  Y7 u  g- y% z' B: W3 E0 z
  98.         ********************************************/3 d$ ?" F9 {! b+ d
  99.         mov        eax, ds
    * R8 F" B8 R  F% v/ S
  100.         shl        eax, 4) r" y) N7 y3 y
  101.         xor        ebx, ebx
    % U6 A/ x) f+ }" W7 V
  102.         mov        bx, offset GDT_def
    ' m9 o% z+ ^/ q1 P7 H, G) U2 {& _' I
  103.         add        eax, ebx  n1 u5 J5 l& v- n+ G( W: b* x4 h9 t1 p
  104.         mov        dword ptr GDT_Addr[2], eax
    5 \2 j/ ]  Q1 y% ]8 _, i
  105.         lgdt       fword ptr GDT_Addr( S7 m( |4 Y; v1 H
  106.         /********************
    0 h& G; `/ V0 O: Y
  107.         *   选择子偏移      *
    . o8 B1 a& \; A" p8 ~, g9 f, g( v
  108.         ********************/8 m( W& x) G) J# Q5 T( q
  109.         mov        bx, 8* z# ?; n7 G$ J4 t# E% f
  110.         mov        eax, cr0
    4 @, h# }6 T4 b( T" P) c
  111.         or         al, 1. b  R1 ?* p& |6 W. S" g+ n7 Z
  112.         /**********************7 N7 R" h% ]/ C; J3 P- J: |2 z( h
  113.         *     进入保护模式    *
    3 r" ^; c* C) L2 m* g6 T) q, R
  114.         **********************/
    - {( B8 s. c+ F7 u* p: ?; [9 J- a$ u% h
  115.         mov        cr0, eax
    0 d2 a: d. U; m" h- n1 d5 p4 ~
  116.         jmp        pMod
    5 A$ I7 a9 V0 z. e# V) Y5 R
  117.     }" M- p  O8 C% w$ u' \9 A

  118. + @5 T; b- E9 D
  119.     pMod: asm{9 ~5 ~5 R' ?5 w' ~# n5 ^% b
  120.            /************************************************************, X' W7 F+ E$ B+ e$ t/ O6 g+ U4 g
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    ** H2 P) A6 M7 {1 ?
  122.            ************************************************************/
    5 N7 `- V) F) V2 L; ~/ Z- k3 p
  123.         mov        fs, bx! Q% m7 Y4 j- n5 `  ]1 Y) M7 a; y/ G
  124.         mov        gs, bx% ~+ ]" o4 d0 S6 Y' C
  125.         and        al, 0x0FE% _5 C! W( X5 n! h. O) x' o' j
  126.         /******************
    / V$ m, w1 `* t+ {7 W
  127.         * 进入实模式      *
    ( t% r. l/ d9 q8 V7 w
  128.         ******************/9 v9 C3 o2 m& C% ^* g" _2 ]' A) d
  129.         mov        cr0, eax
    5 k0 o. [# F8 l3 [+ W) M
  130.         jmp        rMod3 T2 I% l8 _8 @# [1 X( J/ e1 X
  131.        }  [) V2 _" @4 \( F  R# P9 I2 ~; W
  132. , R% z8 {6 ^( i) B
  133.     rMod: asm{
    5 v7 ~; d* T( `8 N: T
  134.         /* ******************************************************************* j+ E% n6 i/ j. A" h" B
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *# U3 j& g/ f% E  M: N
  136.         ********************************************************************/
    8 |! y! \: k: ]7 T
  137.         mov        ax, 04 o( M1 K* [5 u/ W+ Q
  138.         mov        fs, ax
      _6 M" ^4 C4 A8 w' k8 Y& u2 \
  139.         mov        gs, ax
    : G) q" n. e! E( V3 A( T
  140.         sti
    ( i! Q4 V+ w2 a& B" e
  141.     }
    % Z" M( @; E! o) m, `6 w4 P7 X
  142. }
复制代码
这是asm的
  1. ;/********************************************************************4 Q7 z  M5 U3 D
  2. ;*    File: DOS4G.asm                                                *7 G* T0 ~# k0 h& @1 g$ n% Q
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    * T- B( c, G' Z; o; `, f: p& r5 n
  4. ;*                                                                   *
    / h: \9 q8 h) h9 e$ @
  5. ;*    ========================Title===============================   *
    ! o* d  y3 Y3 s. K" b( O
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    3 M& B* J  C# ^& H% t5 H5 X
  7. ;*                                                                   *) b4 ^, v7 h: M) Z! y
  8. ;*   ===========================History==========================    *3 n: r% g$ r8 p2 V
  9. ;*    author: bini                                                   *
    . f6 }6 g* q( j7 P4 V& z) S: O
  10. ;*      date: 2008-10-08  Frist version.                             ** O; X8 |  h' q, I
  11. ;********************************************************************/
    5 k9 {4 X# ^6 y6 V& V. ?
  12. .model small1 H' c/ t9 r5 X" u& h/ {: U
  13. .586p
    3 g/ P4 u4 z: T# n
  14. % a+ {1 x3 y; F* j- \3 m8 C" q
  15. DSEG  SEGMENT   USE16                 ;16位数据段( c/ Y4 a5 ]" u' y8 [
  16. ( v2 [' `% P  G. e( E  q! ]8 H9 h
  17. DESC            STRUC
    9 l( G5 v+ _% m0 }+ C
  18.         LimitL          DW      0 ;段界限(BIT0-15), S" F( ]* t# ^
  19.         BaseL           DW      0 ;段基地址(BIT0-15)2 O" r% ~) ]& T" P' d+ W* x
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    5 F0 D% H/ s( s& M( d
  21.         Attributes      DB      0 ;段属性1 S$ ^4 V' w) P: q# T; O
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)0 E; }' M" B2 K' ~" Z: {
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    ; ?/ e- ^2 [! s& y7 r" u
  24. DESC            ENDS) i% g8 Y6 [, L3 G1 m, a% @% X, n

  25. & y6 p9 O3 w4 V1 B
  26. PDesc           STRUC. W- t8 Q5 ^) l9 o+ }0 B9 G
  27.         Limit           DW      0 ;16位界限
    : n- f' u! L: b+ k- Q8 f
  28.         Base            DD      0 ;32位基地址5 y$ q, e4 t3 ?: e# c
  29. PDesc           ENDS
    / F& B7 o% U! _6 Y. R

  30. * b9 `0 y7 P8 n9 K4 B# _- U# k$ r
  31. GDT_def         Label   Fword4 c- |4 z3 G/ p# Q1 S1 o
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    9 s1 `( O0 x- z- t$ @' b
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    7 D' z: Y+ x4 P. S- \  w' K7 }

  34. 8 r: |1 }. n, S8 m5 S
  35. GDT_Addr        PDesc   <$-GDT_def-1, >9 K& a, @3 C$ U% e+ W9 ]
  36. DSEG            ENDS                          ;数据段定义结束
    ) h! \& I/ N% a5 s
  37. * F, M+ C* E& o* G4 x
  38. CSEG            SEGMENT USE16                 ;16位代码段3 p- S3 e. P8 U5 d. d+ `' H
  39.                 ASSUME  CS:CSEG,DS:DSEG
      ?& N' \. J" z
  40. .Startup& g3 k) D, {/ M% X: I/ j1 T. d
  41.         call      Set4gb; f! C5 d  M6 R2 `0 l% T
  42. ;; l& N- |) u" L" c1 ?, p/ m
  43. ;       fs, gs即能访问4GB空间( F) a" u) ~! N, u
  44. ;       write your code in here.
    * h+ M  O7 d' C, l6 Y% @0 J# _5 z! S
  45. ;. b  A( V4 }9 W. E
  46.         .exit
    7 M  R+ ?* J0 A# y8 S  l& F
  47.         
    8 D! f+ T8 Y7 {' L
  48. Set4gb          PROC      NEAR
    3 g2 N9 O0 ^* J- M" q- P
  49.         in        al, 92h
    & D2 e: j0 w4 r- f
  50.         or        al, 002
    . Q0 V! I$ S/ W( K, O* V  o( e' @/ T
  51.         out       092h, al& C, r4 ]$ p2 p# a# j  B# h
  52.         out       0edh, al2 v- f, H+ p/ j/ V/ N, J" t
  53. ; @; a) q# u% y- @3 y' C4 C
  54.         cli6 w/ L8 y" F4 I, I9 _% X$ h
  55. $ x6 t* U- E! E: @* h% r
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
      }8 |0 a) Z' P8 }- t, a

  57. 7 m- e9 i9 ~8 m9 }& M7 w2 [" N
  58.         mov       eax, ds' z# F7 O- N4 `3 h6 l& \% a5 y) \! N
  59.         shl       eax, 4. i  J& S) z9 ?' i
  60.         xor       ebx, ebx, m; N1 h# }. L9 \/ t( {: `( I  m
  61.         mov       bx, offset GDT_def* G% N$ y- Z2 r9 Y
  62.         add       eax, ebx5 z" r: _* H$ M+ ^+ u. q" ^
  63.         mov       dword ptr GDT_Addr.Base, eax
    % S& P/ L( g7 ?/ w( v9 e2 G/ \: i$ y
  64.         lgdt      fword ptr GDT_Addr% a8 ~0 x# [% Y* G: V" T

  65. ( z* {* m* r* k. S) z) x3 f
  66.         mov       bx, 8
    / l  ~+ I% x/ D( t  }; V
  67.         mov       eax, cr0+ @' b/ a$ Q3 O) k3 @, O
  68.         or        al, 17 V3 q! W- S6 f- s8 M& z
  69.         mov       cr0, eax# \) K* V7 B- S/ t+ I# |; g

  70. 8 n0 ?# S' ]; K) K
  71.         jmp       pMod
    . T/ t2 v. j7 m+ T9 F6 H
  72.     pMod:5 c8 E7 L, q, t

  73. 7 X# u& Z0 g  V( J0 D$ p
  74.         mov       fs, bx
    1 Z% K5 e4 V% O/ F, I6 U* q6 A
  75.         mov       gs, bx4 w8 ?  G. X: ]
  76.         and       al, 0FEh
    $ V! |/ B  c" K
  77.         mov       cr0, eax
    * Y+ S$ M4 `3 K
  78.         
    * S" w+ Q% E' E( l5 b) @
  79.         jmp       rMod/ S  b& |8 s. N
  80.     rMod:
    2 p: |2 c. p- w9 H8 T; M# p  i

  81. % \/ h8 F6 y. t" j
  82.         mov       ax, 0, l# c$ V: `9 E, v' ?
  83.         mov       fs, ax
    & C0 f. c7 y2 q3 E
  84.         mov       gs, ax
    - [- e/ S- f& Z/ P
  85.           P- A/ W2 j2 K
  86.         ; 在2M的位置测试写一下数据( o, n& y" w( k! p
  87.         mov       esi, 200000h
    2 C0 h+ h; ~8 Q4 W% ]1 o
  88.         mov       dword ptr fs:[esi], 055aa55aah
    # S$ N0 N, B) q6 k; F3 I: d) q
  89.         ; 用RU去看看200000h的位置是否是此数据....* ~) I6 [$ {7 H2 J! [$ c

  90. ; ?+ W/ c& g1 b1 Q6 [8 F. ]: n0 \. N
  91.         sti2 N6 r) o4 ~$ ~: O% U* V6 l) q. C
  92.         ret4 Z8 j+ L2 M% Y* f7 _
  93. Set4gb  ENDP$ ]1 n3 Q  q% ~1 o% G
  94.        * L% r# c* A- ^; D/ O- @6 M
  95. CSEG           ENDS                              ;代码段定义结束
    # a; a" a& |' k3 f0 f
  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
# P" e% k: A" D5 P/ Z2 l8 e/ o2 o8 K, w% ?% ]* a# E) Y* E3 ?; B
option->compiler->code generation中的option选中, [X] compile via assembler
9 U& c1 @8 Q4 l) G( h+ d' W* g$ h2 n5 u/ e* i  \5 q5 b
[ 本帖最后由 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;' T% j0 a# j8 N+ i
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;2 k. G/ s) u1 _- y

' u" h  B  S5 E$ kGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
' T% ]6 @; I! m 替换如下,
* v* |4 H" a2 ?$ T+ M; rNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
. z& l( v0 W3 @7 d* ~- r* sData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
# i: I3 w6 L) J4 |( m, n- Q7 J
- {: Q! {' ~% ?; GGDT_Addr        PDesc   <$-GDT_def-1, >( b3 ?  x2 ]' ]% Q
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
+ b/ m3 Z' o% |, @  e: ]option->compiler->advanced code generation中的instruction set选 80386( n4 o- R9 V! U- i1 S2 y, `: i

* b" O4 t0 |( I" \, u3 x. p+ yoption->compiler->code generation中的option选中, [X] compile via assembler
; G( T' G3 k0 d( ]" V9 \
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
8 H  V5 n+ E/ o8 N1 q! c" `
9 B8 [& T7 M8 [5 `6 G5 T   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

5 b1 S  I) d0 i  `% [" ?5 a8 m- }- |
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;4 G) g8 {: D) E# L( ~
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 18:23 , Processed in 0.072998 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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