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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
; O: M( }; S2 ^, X& v: Q. m
# s3 j' |7 G+ k) O这是C的
  1. /********************************************************************
    # Y* K# u8 d% q3 |8 y' n
  2. *    File: DOS4G.H                                                  *
    " ^+ @0 S, T% R7 Q! e; m% n/ w
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *9 l- k* v8 ?7 U9 @  G& _/ q
  4. *                                                                   *- Y- B5 O( u. C! w: y7 w+ r, D, n! X
  5. *    ========================Title===============================   *% T# ^8 {9 a. s4 m5 j0 t. w
  6. *        这个函数是让系统进入DOS 4G模式                             *8 E# N: p. Q: Y: F
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    # t- k) X- k, z8 c! `( {4 t7 P7 X& \
  8. *                                                                   *$ t4 V5 B2 Y( v# x5 p6 J; j7 {, Y; O+ Z
  9. *       使用: openA20(); set4gb();                                  *& G6 J" e( d+ Q( p2 b0 V
  10. *                                                                   *) F4 N' y- ?% I$ [9 ~
  11. *   ===========================History==========================    *
    # s8 A. S; l7 @/ D8 m
  12. *    author: bini                                                   *
    & T: m1 w- W. V4 H
  13. *      date: 2004-11-30  Frist version.                             *
    % B) ?( y6 o+ h$ c$ D
  14. ********************************************************************/
    5 X" R' O: k. L4 N  \7 E
  15. $ G* L( c8 m* V" R4 z- T0 y( r# L
  16. #include <conio.h>' G6 F* y9 X4 k# Y" h/ @7 ~
  17. #pragma inline. l3 h% i; N/ ]0 K, S* n/ S. e

  18. 1 j" _5 q6 Z( E0 B; A7 J8 r# `. y9 W
  19. /***********************************************
    5 Q" l3 g" C" {5 Z; y
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    6 F5 a$ T2 D2 d2 Q; m
  21. *    第二个为一个数据段,没有代码段。           *. e0 c3 k7 }8 S2 M- D
  22. ***********************************************/
    + _& r7 l; e+ X4 O- h3 q/ |3 V
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    4 b5 B6 ~# P; g  j( c
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, & ]# @4 L, f  p7 w
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    7 ~' {/ ?5 `, p3 k
  26.                                       */) }4 Y# @4 w6 K7 L6 J, m
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    0 t3 r3 z: T3 N! h* {' e  _- s/ B: i
  28.                                          最高字节为 base( bit 24~31 )' c4 F. E/ a9 E- k8 F
  29.                                          
      C$ c+ _* ]! B: ~7 ^8 b
  30.                                          属性Attrib = 0x8F92
    8 |! b2 v8 i. l$ F
  31.                                          ( f% x/ h9 j. x$ z8 M
  32.                                              属性位Hibyte低四位为
      W5 O3 h- z3 F* |* R: x  b6 N
  33.                                                  Limit( 16~19 )=F/ v1 I4 [4 p  u+ T" Q2 q
  34.                                              属性位Hibyte bit7 为粒度, E4 E; G4 y4 v! l, G1 t' W/ x
  35.                                                  (值1=4KB粒度)
    , Q5 N- E8 I  N; w& ^! B$ F$ V
  36.                                                  8F & 0x80 = 15 x( l0 A, l& V7 q  c
  37.                                                  9 K0 O$ K0 A( V" a2 C4 v2 a& h5 A
  38.                                              属性位Lowbyte低四位为段类型,值=23 V6 B  H9 y$ E; B3 [6 W" @9 D
  39.                                                  表示为可读/写段6 i. Y8 M+ b& n4 E1 ?" z7 r
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    3 J- d/ F1 F2 y5 @: H
  41.                                                  描述符对地址转换是有效的。7 t! E! \4 U: V* m: F8 k% P! ~
  42.                                                  bit0=1表示为:
    : E, g- b2 D6 C
  43.                                                  系统段描述符。而不是门描述符。1 m. S% p4 Y6 v8 v9 l8 t) O
  44.                                              % w/ q2 l3 C5 I' d
  45.                                          */
    * c* _0 m2 W( W3 _- l

  46. $ u5 V1 i1 O' w5 Y# W, V
  47. /****************************************
    ( p6 l" C% n# ~8 t6 f
  48. *    GDTR寄存器, 48bit=6bytes            *  h( x0 O# Z' j* A% a
  49. *    +-------------------------------+   *# q4 A0 ^/ f, F* s2 v- G
  50. *    |   32bit基地址       |16bit界限|   *+ f% g( c' a7 e6 F4 V
  51. *    +-------------------------------+   *. Z$ M* g% N, t% W5 j  H
  52. ****************************************/3 a7 T9 P' P' l' r7 X9 J; [
  53. unsigned char GDT_Addr[6]={0};% e3 W0 I+ ^2 S+ ~- w- ]$ r
  54. 1 |/ N( a% G3 c+ e7 T6 T4 X
  55. /****************
    ; N- N+ ]3 t3 n; U$ s( d
  56. *    打开A20门    *
    ( U- [# I7 D* Y+ l$ ]  X
  57. ****************/$ L2 J% f. T* h
  58. void openA20(void)( `  F/ t8 K9 T7 ?2 d# t# ^, H, v
  59. {
    ; p0 W: ]( h5 [
  60.     asm{7 @" |, m# O8 j* d# q
  61.         pusha
    # ^; k& c* m. F0 f* t7 K9 v
  62.         in         al, 92H
    & Q) ^1 H1 F  _" O9 w
  63.         or         al, 0x02
    & f- G+ {% @" ^  n% p2 ^- j( `# l& [0 }
  64.         out        0x92, al
    % H: b- C+ m1 _4 m1 b& H0 m
  65.         out        0xed, al3 _/ {- K, d: C( Y5 [! o
  66.         popa
    / K' s0 E0 o: q7 v- @* m; S
  67.     }
    . {$ z% t4 A$ W. h+ {; s
  68. }% U) ^9 H5 n5 h6 F1 k' c* h

  69. 2 S3 A9 r' d# x& e
  70. /***********************************************
    0 N: h5 i9 U1 h/ Q
  71. *    函数功能:进入DOS4G                       *
    ' d' y5 |; M1 p3 H! ?+ |/ E
  72. *    ====================                      *
    7 S3 ?% H$ H* I; {" k+ h; k
  73. *                                              *
    ) |- Y* L+ Q5 h
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    4 I2 J' @5 e7 o$ T5 y; d, |! `( M3 o
  75. *   如:                                       *
    6 N( t  W2 y. ]2 i6 H
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *4 w( W0 A" k5 w4 d' d" o( @
  77. *       表示为 2个GTD                          *) q: z$ Z( G' w& X; ~+ Q) t
  78. *                                              *5 f2 m6 Y$ e# {# w" m; A# [
  79. *    选择子为所在描述符内的字节偏移。          *
    " {8 e/ {1 f* c  d3 `
  80. *                                              *
    * ~, Z: O+ e. Q3 |
  81. ***********************************************/
    8 T3 m6 z7 D" k$ l+ g% K7 H  C
  82. void set4gb(void)
    ! D; B5 A1 j# n
  83. {9 e+ z0 s7 z2 k, p7 z8 x
  84.     asm{
    ; i# L  M3 l2 b6 m/ L0 Q
  85.         cli
    ( N; ]* J1 ~& Q9 F- a
  86.         /****************************************! b7 z/ R& Q- |, S# R
  87.         *    GDTR寄存器                          ** a9 a5 l3 P  A2 v7 d; o+ z
  88.         *    +-------------------------------+   *
    0 H: L7 z2 K( E0 p' ~4 z
  89.         *    |   32bit基地址       |16bit界限|   *$ z- \5 P/ x. P9 _: m, f/ C8 ?
  90.         *    +-------------------------------+   *& f2 G1 s5 m) w  b  E
  91.         *****************************************/
    0 F) Q$ v* n2 P1 `. H- @# q9 m
  92.         /*********************( e5 S- t$ h; b& k  J
  93.         *        得出段界限       *6 f# O" r2 m# M8 d$ ]
  94.         *********************/8 A/ e9 f: C. q4 u+ N
  95.         mov        word ptr GDT_Addr[0], (2*8-1);5 @& Z/ \2 b9 O
  96.         /********************************************
    " z4 j/ ~- z( x# l2 Z9 G
  97.         *    计算GDT表的32位基地址,存入GDTR        *$ o7 W  }5 W4 p5 h" o+ T2 Y; [
  98.         ********************************************// Q0 ]/ Y. |6 B, W( \" S- l) y
  99.         mov        eax, ds4 e0 i2 h; `. T6 Z3 m
  100.         shl        eax, 40 L* A% Z* q8 {# z" J8 M3 z8 @
  101.         xor        ebx, ebx
    + a* T# j- Z7 w, k1 f6 {9 ]& V
  102.         mov        bx, offset GDT_def
    6 [2 J# Z9 i# M1 \! U- e* ^5 w
  103.         add        eax, ebx) A8 z- o$ s, x7 u7 w
  104.         mov        dword ptr GDT_Addr[2], eax% Q' h* L9 _: l. ^" U
  105.         lgdt       fword ptr GDT_Addr. d0 q: m5 f* m2 r
  106.         /********************- J4 w- U! E2 o/ n: W* i& |
  107.         *   选择子偏移      *) U3 }( Z9 f! _8 g" |' N0 W; Z8 @
  108.         ********************/' B9 P" B( S) X
  109.         mov        bx, 8! i# _1 d1 `3 ~6 d8 C: H5 C
  110.         mov        eax, cr03 Z5 K, c* z& h; g6 ?! d* J8 ?; c
  111.         or         al, 1; ]; h8 _  ~# J. S+ d6 Z6 p
  112.         /**********************
    $ c! o7 U" |# Z5 b1 L5 N
  113.         *     进入保护模式    *
    # ?: n6 h" b; g$ ]+ [- l
  114.         **********************/0 W; b9 w) e; r3 U: P! o% W' m
  115.         mov        cr0, eax
    : j! c( e  v$ n* E5 l& E  l) ?* U
  116.         jmp        pMod
    ! d. u, B+ c6 v
  117.     }
    2 T; J2 T* M% q  h1 F

  118. 3 \. P! ^& O3 k" z1 S" U2 u0 Q
  119.     pMod: asm{
    - G5 e1 S5 v. K$ |4 l) |
  120.            /************************************************************
    " r) h! }( U3 `3 V$ n
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *- f/ v/ M* u. E! t6 u
  122.            ************************************************************/
    : {- M- B3 r3 D$ B* Z4 \6 O/ n
  123.         mov        fs, bx
    1 W$ S! k/ @! o' n# p" j* i
  124.         mov        gs, bx
    + |  |3 c: i. ~
  125.         and        al, 0x0FE
    ) b. U; G% A9 u) n, B! A) u
  126.         /******************
    7 G5 Z- F7 Z5 l- V
  127.         * 进入实模式      *: i" [1 h' g4 l
  128.         ******************/" c2 R5 W# X. W
  129.         mov        cr0, eax2 p" Y, l% e+ m9 Y+ P3 i& J& V
  130.         jmp        rMod; E$ t2 K, b: x0 g! }
  131.        }
    ; j. d& ~- }. k; t8 k+ T/ I
  132. - U6 I* R: w2 [* d+ V# s
  133.     rMod: asm{
    5 F( i( H  `# l- y
  134.         /* ******************************************************************" ?* q" V& i* }
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    : r) D1 Y# U; n9 H  X7 u
  136.         ********************************************************************/( K8 F- P; ^* f
  137.         mov        ax, 0
    ( ?+ W8 V8 A! W" T" A/ N: _. Y2 y) A
  138.         mov        fs, ax
    3 ]  A( @. \4 p* D/ T& X6 C4 b: B  r
  139.         mov        gs, ax" ^/ V9 M6 {* ~) U# L* y! c
  140.         sti
    ; p6 q  ?0 [/ p" F. z
  141.     }
    5 O7 g( Z/ S- C) L" j; G
  142. }
复制代码
这是asm的
  1. ;/********************************************************************1 R4 d% t7 K8 C: R) R+ r
  2. ;*    File: DOS4G.asm                                                *8 V  ?4 f7 ]# a. L
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *" F* @& V/ d/ W; S7 _2 |
  4. ;*                                                                   *2 \. b& ~" |+ D# |8 [) h
  5. ;*    ========================Title===============================   *  _) T7 }7 q' E" W* a. G: l
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *! B2 h. t! e' W, ]7 W4 u
  7. ;*                                                                   *& c! C3 F6 N7 h* B" i  y
  8. ;*   ===========================History==========================    *7 v0 l: r- ~" y$ h
  9. ;*    author: bini                                                   *, B3 M# |* c& F6 o
  10. ;*      date: 2008-10-08  Frist version.                             *: ?9 x% J0 T$ B( s
  11. ;********************************************************************/ ; L- v7 M  }0 u
  12. .model small
    . z' l$ U1 c% Q) _( ]
  13. .586p# `. m' P# [( u/ q# U6 _
  14. 9 w* P5 r4 }9 Y/ j7 c% X& r# v* }
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    ( Q5 R  @0 c2 W; T$ t: w& T
  16. : O: ^; i* K# }- `! t* t
  17. DESC            STRUC
    1 u! A1 O7 R6 T  z
  18.         LimitL          DW      0 ;段界限(BIT0-15)$ j% `. B6 N. M
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    0 \( U* q) A! V7 N( Z$ Z  r+ z
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    ( U* i- \$ J9 O. d. D2 @, s
  21.         Attributes      DB      0 ;段属性
    4 z% j: n# F, x7 y
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    3 Y+ `6 |+ h$ X$ j$ W# H
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    * v: Z, S& H6 \6 D5 @" I5 D
  24. DESC            ENDS7 m) b1 N" D1 K/ G4 {

  25. 0 X3 V; J' N; s$ G; |
  26. PDesc           STRUC( S  ^& j6 X3 _2 z& O3 P+ W
  27.         Limit           DW      0 ;16位界限
      o4 f- l0 n0 x9 M! c
  28.         Base            DD      0 ;32位基地址: d7 W; O# e, }+ J" d! i: v- Q
  29. PDesc           ENDS
    # `/ `( }6 v& H# u! W/ t2 e
  30. ; K: @$ g% u* a4 B, v' q
  31. GDT_def         Label   Fword2 R! Y  h. F$ q7 Y+ \. L$ @* n7 r
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    4 V7 C4 N( @, Q! f" L, a4 n! P
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>3 ^% C1 Z: p/ s+ Z* p6 v5 V

  34. 2 Z% P* ^- \- q/ b: `
  35. GDT_Addr        PDesc   <$-GDT_def-1, >7 B5 o, U' g0 R3 x3 Y
  36. DSEG            ENDS                          ;数据段定义结束  I' s( t' k: h/ {) m) E
  37. $ a% a+ e; x3 _; C3 F* |, ^* ~
  38. CSEG            SEGMENT USE16                 ;16位代码段  y# p7 g* a; p
  39.                 ASSUME  CS:CSEG,DS:DSEG; G( {% u1 `" j0 u" Q
  40. .Startup3 ?+ R# f: X! m6 \% u1 g( r
  41.         call      Set4gb
    ( R# }. F' T7 w  R. k, W
  42. ;) F* b, R: S" H7 h$ J3 o+ ?
  43. ;       fs, gs即能访问4GB空间
    * ?+ f% Z; _# o+ `4 _
  44. ;       write your code in here.. _* j2 \( o7 L9 W& e1 t
  45. ;' Y* T( s" w4 k, W2 L
  46.         .exit
    # f, n2 Y/ h+ P1 ?* i/ ~
  47.         & g7 `( ]6 G1 Z7 u3 m
  48. Set4gb          PROC      NEAR2 ~! x+ c, |0 d. C  T0 f
  49.         in        al, 92h
    * B. X7 K) E1 y1 @! n1 T; v- U
  50.         or        al, 002
    1 ?' z, q1 M, Q
  51.         out       092h, al1 L1 z2 K) N7 }! K+ q" Y
  52.         out       0edh, al; a3 Y0 r* [% @% Y
  53. 4 P, g4 b! T2 X4 s7 ?
  54.         cli
    8 t4 I2 c$ {5 i; b0 G

  55. $ i8 n+ z: r8 v! A0 L- G- a4 m
  56. ;        mov      word ptr GDT_Addr, (2*8-1);4 X% r+ V' P# R( M  T+ n

  57. % @$ M3 y0 C# y' m5 h
  58.         mov       eax, ds( r: w+ N5 @9 ^4 }. X2 R+ h
  59.         shl       eax, 4% e$ o: T% F3 G2 |" {8 @: j
  60.         xor       ebx, ebx2 P  K! y! n/ e1 x( W2 S
  61.         mov       bx, offset GDT_def- U8 ^) p7 @. U. G( n
  62.         add       eax, ebx
    9 k' d2 [" }1 K; o" `2 f, ^
  63.         mov       dword ptr GDT_Addr.Base, eax: a3 T3 U+ }7 V4 T- {  ]- B  a! d
  64.         lgdt      fword ptr GDT_Addr* R' T& l, V& Y; U9 v6 I
  65. - Y$ v$ R/ q, {* ?( y* j! D4 C4 [
  66.         mov       bx, 8* ]$ T/ U4 O, c
  67.         mov       eax, cr0
    4 \% K3 i& h& \6 Y
  68.         or        al, 1
    $ x- R" Q/ P  u9 w/ P
  69.         mov       cr0, eax: \# F: p' A* P: Z" B

  70. 6 S9 V4 ~" \+ P6 E9 c
  71.         jmp       pMod
    2 |* u# j8 t9 O, r, }, `
  72.     pMod:% {0 B+ m$ `/ W" t7 D
  73.   y1 G1 x; o* [5 r) k: Z9 y3 ~
  74.         mov       fs, bx3 x& H+ e) T7 t5 H! c: P# c
  75.         mov       gs, bx
    , A2 f0 ?# N& N6 O$ E
  76.         and       al, 0FEh
    3 `* @% R3 n; y, J% K& d; i# j8 e" ~
  77.         mov       cr0, eax% n6 S% w0 b3 H  `0 p
  78.         
    7 v1 m) Q/ ?; Y. Q  S& q
  79.         jmp       rMod
    / ]) P- K$ \4 v8 K6 X! J6 v
  80.     rMod:  `2 n0 b) \" D9 j* n

  81. . _7 I6 f. J6 f( m; \$ C, S9 r
  82.         mov       ax, 0
    & P' u9 I* a( H. D
  83.         mov       fs, ax( k- v8 J, w9 H/ C! d
  84.         mov       gs, ax
    / o- [5 {4 o5 E/ N2 `6 b
  85.         
    : g. q1 w7 i8 q, @+ S, C
  86.         ; 在2M的位置测试写一下数据# H' L3 [8 s3 Z2 X9 y/ g
  87.         mov       esi, 200000h
    % A+ b: U$ F2 d3 P  H
  88.         mov       dword ptr fs:[esi], 055aa55aah
    $ K1 A% u- [  r) w% K7 N6 _5 X
  89.         ; 用RU去看看200000h的位置是否是此数据....
    : d3 a3 F; u, X$ ?
  90. 6 k2 K, E" Y. g
  91.         sti0 u0 U$ H6 M: |5 q9 @& r( h: H
  92.         ret( a/ e( \9 R. C5 u  V% |  a: Q
  93. Set4gb  ENDP
    * e& b0 j) M8 C+ {6 M
  94.        7 o9 ?- B, Q7 a" Y7 P
  95. CSEG           ENDS                              ;代码段定义结束$ n# i# V( }. j& S
  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
% |% t) P3 n3 U) A2 o
" Q& ~/ Q, w& [* W# joption->compiler->code generation中的option选中, [X] compile via assembler) d% t  Y5 W; O) |
7 R+ U# Q3 w1 o, [) N" H0 d
[ 本帖最后由 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;8 W8 d( S! _& @, q) O4 U9 k0 Y
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;% i. @; ^  b0 H+ u
% F% s4 F- k" i
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
  F( ~5 Q4 j* @9 ~; N9 \$ T 替换如下,
& ], D& r+ D; S1 p0 LNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>! x, E4 m6 Z, \) G7 w
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
# M& w; O+ X8 l$ ?7 v! x
1 u7 Y0 T6 k& D7 [& d" b, vGDT_Addr        PDesc   <$-GDT_def-1, >% F6 ?. o) {, y. Z) V
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
+ M& T& _# F$ Q  z( |: f  y1 r3 Z, Loption->compiler->advanced code generation中的instruction set选 80386
% X( L, I9 w# I, h# }) d& q/ E. J3 B
option->compiler->code generation中的option选中, [X] compile via assembler
. n& i  x: Q5 z2 l
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
8 g: y5 H# N. h7 F. J0 }/ A( {( c( Q) e. r
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
- B4 j! k) V* s0 f8 M

9 W' \* f$ S: v* V. _+ m- T' c- r6 q我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;& \5 ]! x3 y. I: P/ m, `
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-29 03:06 , Processed in 1.518996 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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