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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。# U* l% x4 Z! ~( \. ]
8 ]+ e" d6 |; m# n( p- m
这是C的
  1. /********************************************************************
    $ M" L( v( i9 i/ a! |$ i) B' u
  2. *    File: DOS4G.H                                                  *
    8 W3 `* K5 I: {7 m$ M9 R! D
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    4 r( o: O8 P" Q9 u$ q
  4. *                                                                   *; J+ U5 e4 p9 {/ m) `1 a& c, S
  5. *    ========================Title===============================   *
    + b# t+ [! I. @- C
  6. *        这个函数是让系统进入DOS 4G模式                             *
    ) i% H0 ~0 e0 x- m" V
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *. a' z- x0 n2 ]8 {" i" ^- w
  8. *                                                                   *
    + G$ {  a# d8 _. l1 n
  9. *       使用: openA20(); set4gb();                                  *2 k% r- f; n% q3 `
  10. *                                                                   *
    3 R8 O: m9 P  L, w" H7 X: a' l
  11. *   ===========================History==========================    *
    , Z9 a7 G, c# L5 K3 W  ^$ E
  12. *    author: bini                                                   *) r9 F& B5 H5 r( i; b
  13. *      date: 2004-11-30  Frist version.                             *
    5 X) @$ n* V" Z$ h; Z" a/ N
  14. ********************************************************************/
    . z4 F7 l/ Q  A1 p0 I  W
  15. $ r5 i, o8 j7 D( o8 d  a
  16. #include <conio.h>
    ! v. ?+ [* O; h
  17. #pragma inline
    + j# U3 j! x3 Y" B7 j

  18. 7 J: L1 [) V: h# w2 B1 |9 h
  19. /***********************************************
    1 G; V+ o- S6 p- b# ~! O5 G
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *& I! ?- v6 B3 @. X# i: N
  21. *    第二个为一个数据段,没有代码段。           *
    4 T5 b5 F# @/ O7 K! t4 o( |
  22. ***********************************************/
    8 }& |& ~. ~; O; ~, a) x* _$ V, n
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    : W0 U/ f$ y0 h1 Q, s5 B0 }
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, 7 B/ x" E. F- F3 T5 [
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF # e: f) Y% C5 Q# Q* N# a
  26.                                       */
    ' r$ Z$ R- x5 m
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    ; n  t& F. {9 R3 P
  28.                                          最高字节为 base( bit 24~31 )
    + p) b$ V" b9 y, o) }' [! w& ~" y
  29.                                          
    - p5 y( B. |/ S8 r
  30.                                          属性Attrib = 0x8F92, E6 z; S/ C5 d+ z' n+ L, j* d
  31.                                          & s/ h! U( U7 [# Q' R
  32.                                              属性位Hibyte低四位为
    ( Y+ O4 K" W5 O, m
  33.                                                  Limit( 16~19 )=F
    6 J3 ?) a) |3 x& B
  34.                                              属性位Hibyte bit7 为粒度* b# [9 @% ]! R" s# Y+ c% E1 _1 M
  35.                                                  (值1=4KB粒度)
    ; C7 v) l; c' X/ W% n# d
  36.                                                  8F & 0x80 = 17 y# K3 N( G( R( ]5 Z5 p" Z
  37.                                                 
    : y  k; u; d9 F  q- e# p
  38.                                              属性位Lowbyte低四位为段类型,值=2
      ~1 f7 F, P' g0 a% k2 s' Q
  39.                                                  表示为可读/写段
    $ r4 K/ d5 U: b3 y% Q; P* n
  40.                                              属性位Hibyte高四位=9,bit3=1表示:5 `9 m5 m3 [% ?6 V% y* e: E/ }
  41.                                                  描述符对地址转换是有效的。! @% s8 c, D# u. [; v
  42.                                                  bit0=1表示为:% a" X' K+ j1 P: |7 `- c! A
  43.                                                  系统段描述符。而不是门描述符。
    % I1 j( ], _% C# \
  44.                                              
    4 M+ ^# N4 I9 m4 _9 _1 q0 u3 X7 ?- W
  45.                                          */0 Z. h2 `5 O2 m' u) M/ [- M

  46. % [) z! ?1 E' m, `+ u
  47. /****************************************, x9 H; W8 D% J, j
  48. *    GDTR寄存器, 48bit=6bytes            *
    / H. Q$ C. m0 P6 }2 @3 d) ?
  49. *    +-------------------------------+   *
    ' K0 g: q! i$ b
  50. *    |   32bit基地址       |16bit界限|   *8 r# ?, B( a% R
  51. *    +-------------------------------+   *6 j9 e) h6 V/ x" I* H
  52. ****************************************/7 ^- t7 q) i# \
  53. unsigned char GDT_Addr[6]={0};  X) e4 [# Y8 H  D  N% e6 G1 a
  54.   ^, b4 ^$ d2 g5 c) b
  55. /****************
    " F( S+ O! a& L+ `4 U4 N
  56. *    打开A20门    *
    4 B! I8 }, i& q
  57. ****************/
    1 i8 w4 J. Y* D
  58. void openA20(void)) x9 C% K. P9 c" n) @. I2 L
  59. {/ X1 k* S( o* ?# G
  60.     asm{% R! @: j$ a4 n; B* W
  61.         pusha
    & F2 _0 A" o: I1 j  R3 f) `
  62.         in         al, 92H1 `9 {3 R7 f$ m( U
  63.         or         al, 0x02' A8 Q) T$ M6 Z  ~
  64.         out        0x92, al
    . j- s+ K8 o6 Z  q9 o0 z
  65.         out        0xed, al1 O  ~  D" d& N1 x3 w7 {
  66.         popa
    $ T$ d2 g* e% n0 m# a' p
  67.     }
    . w! S0 |4 Y5 u# d4 u, `% i4 O
  68. }1 U7 @( \4 {3 L( U9 [9 {
  69. ! M- B2 W* _; Z% G; m) p- U5 s
  70. /***********************************************& o7 d. [# |; n9 }. N% h9 G( M
  71. *    函数功能:进入DOS4G                       *0 X' A+ l) G5 {0 I' [( i( N& I
  72. *    ====================                      *& R. E7 L3 p0 X; R1 _# c6 Z% z, \
  73. *                                              *
    + w* e: \% D1 d3 T* a+ i
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *# }4 i) Y5 `- F+ j
  75. *   如:                                       *
    ( z1 U& ?2 Z1 M# r. v) R
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *' R) s4 c- y+ v3 Z, b" f" L
  77. *       表示为 2个GTD                          *7 q+ I3 h1 C6 ~: `" N! W0 l
  78. *                                              *
    : {" Y) _; l2 u5 G/ O2 P8 k
  79. *    选择子为所在描述符内的字节偏移。          *( i4 z. H( r2 a( B( O( H7 l
  80. *                                              *6 x: D* w8 q) H5 \+ ^- r* T
  81. ***********************************************/5 T* i6 ?+ i  g4 A6 w" j$ H3 |
  82. void set4gb(void)
    # Z+ O3 ^1 R$ A, P( G
  83. {( N4 e+ W# \4 j2 `5 t; k& ~
  84.     asm{" |1 H* d% e: F' ^/ t
  85.         cli/ n! d7 x0 p: \8 N2 }% W( [
  86.         /****************************************
    6 f1 F$ g0 i! s! d
  87.         *    GDTR寄存器                          *5 u: [8 w% x- ?! N* r5 b( _2 N" {+ a2 N
  88.         *    +-------------------------------+   *9 r6 J3 y( d" v* x& a& f4 N# r0 }
  89.         *    |   32bit基地址       |16bit界限|   *3 s0 T8 i# O2 F# A* b
  90.         *    +-------------------------------+   *& W& N5 k2 U" v0 D! O
  91.         *****************************************/, S1 o1 C, v, A
  92.         /*********************
    + @; Y1 q$ S0 t- f) h3 @$ N
  93.         *        得出段界限       *
    ) f% p# V% m4 k
  94.         *********************/, z) G' V5 o- `
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
      v( p3 F1 r9 F
  96.         /********************************************
    5 ]0 U1 h4 X6 I
  97.         *    计算GDT表的32位基地址,存入GDTR        *# a- |7 j1 x; }4 h* x  L+ |# [
  98.         ********************************************/4 y1 ~( e: P* b: L9 u' J3 Y
  99.         mov        eax, ds
    & ~: V$ K7 Q4 Z1 {  ]
  100.         shl        eax, 4( k$ ?1 m$ r7 U3 i) B% j
  101.         xor        ebx, ebx3 ^" [# r6 A+ \! R8 A) p
  102.         mov        bx, offset GDT_def' q2 U+ {8 n3 M- T9 E
  103.         add        eax, ebx
    4 O) }4 j; ^; M, X
  104.         mov        dword ptr GDT_Addr[2], eax
    0 ]( f% M+ V: {; ~5 _
  105.         lgdt       fword ptr GDT_Addr
    ) D, O. E7 j0 v: F# B
  106.         /********************
    6 H/ q; }4 c# g" t% i6 i! q6 W7 u/ E
  107.         *   选择子偏移      *- e$ a; y# G& l( c
  108.         ********************/
    / A+ f, V5 Q$ a9 E0 _( E: s. w
  109.         mov        bx, 8! H' O/ b; H" d1 Y3 p) C5 D
  110.         mov        eax, cr05 U4 f  {$ s6 `( z
  111.         or         al, 1- o' a1 D9 ]4 ^1 s0 x
  112.         /**********************
    & b. b, q. V% k* q! _
  113.         *     进入保护模式    *
    & T# Y, v* k$ u$ B: w6 [; d
  114.         **********************/
    + M  I3 h1 ^" D7 r9 h
  115.         mov        cr0, eax
    9 A. C; D  V. o& h
  116.         jmp        pMod+ ~; K6 T' ]$ @6 h. k  E' y$ f% j" M+ R
  117.     }4 o! v7 E5 l) G  U4 ^7 ^
  118. / l! U4 U0 }1 D- W" P
  119.     pMod: asm{( g: s7 E( S: U7 l, g& b( m$ n! X
  120.            /************************************************************
    # B7 P" ~0 c5 ?" Q% ]. |" R
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    2 ?% g2 y3 K' i6 A* X. ?
  122.            ************************************************************/
    + s: d" w8 n% s# A/ C4 [
  123.         mov        fs, bx
    " K+ j1 E8 e" z  H1 T4 b
  124.         mov        gs, bx# }3 D# L  h  x3 I+ O+ g/ P7 k) s
  125.         and        al, 0x0FE
    * F( ^1 E$ X1 f: F3 ^
  126.         /******************5 _6 m# I* j" G1 h! B# g9 x
  127.         * 进入实模式      *. ^9 r  K% M& h9 O: A- f" _
  128.         ******************/
    $ B0 W4 T9 Z$ q0 G8 z
  129.         mov        cr0, eax8 c3 A. X$ C. _  C9 I, _
  130.         jmp        rMod. g9 m: p! ^; t( t' z% I4 \8 Q
  131.        }9 h+ V. s8 M% N+ Y' g
  132. * h# P2 S# E/ @! ]  Q/ _+ z5 W
  133.     rMod: asm{
    / X- c8 [' q* u7 S- i( O. D; W
  134.         /* ******************************************************************
    : K* a5 q$ C1 w/ k" q, m! l. K
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    ) R3 a  \/ X8 Q- x5 ^
  136.         ********************************************************************/5 D$ q2 i, I& f8 K% v; M1 y
  137.         mov        ax, 0: J& _/ X- n( n) \0 h6 k
  138.         mov        fs, ax
    ) n  E  {2 |) a/ L; o
  139.         mov        gs, ax6 {' W2 x' r  X* r7 j, n
  140.         sti0 X8 A& m6 H; `$ p
  141.     }, _: T; f! U/ q4 S9 n
  142. }
复制代码
这是asm的
  1. ;/********************************************************************6 H0 _* X+ ^9 s+ i# k7 u6 s+ V! v0 @
  2. ;*    File: DOS4G.asm                                                *6 e+ T; X4 V. `; \- s
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *, v3 \2 P& r0 a  [& K. J
  4. ;*                                                                   ** w( D  c; I$ }) s1 [: B' R! i0 V2 L
  5. ;*    ========================Title===============================   *4 P1 ]! E: i. D$ Y
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *: f6 U8 y8 a6 ^8 c/ x
  7. ;*                                                                   *7 T' U$ r+ ~& W: @
  8. ;*   ===========================History==========================    *! d  K' y; ?" A6 f' C4 Q, |" [/ I
  9. ;*    author: bini                                                   *
    1 `+ _3 ?* w" ]6 Y
  10. ;*      date: 2008-10-08  Frist version.                             *$ s: t7 y0 E9 e) W
  11. ;********************************************************************/
    ( }" C. v0 S3 o: R7 ^0 z
  12. .model small
    & J. Z, n9 p- @, o+ u6 n* _
  13. .586p. d6 _) Y3 H+ t; Q0 j
  14. ( a/ C" _2 {" |/ _- |7 @
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    & g4 v" U* ?$ D) _
  16. " O& Y: E6 x8 }! |& w( t
  17. DESC            STRUC  d5 C- C7 J# d( w5 u( ^- [/ G
  18.         LimitL          DW      0 ;段界限(BIT0-15)  \) p  N! M8 J3 P2 [
  19.         BaseL           DW      0 ;段基地址(BIT0-15)$ |' E3 |" J/ w( H- c& v  n
  20.         BaseM           DB      0 ;段基地址(BIT16-23)- |/ C& Y7 R/ J& h! w; I$ H: h* Z
  21.         Attributes      DB      0 ;段属性
    : w3 U# \! [# V4 O9 o+ q& l
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    : R8 B' d/ M( g, g8 u7 D1 A7 n
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    1 i' q  m  D' i
  24. DESC            ENDS1 n7 y0 b  j3 C- h4 Z1 u
  25. , W, l4 T0 A- P
  26. PDesc           STRUC' x& f9 R7 a7 p7 @( }7 B- p
  27.         Limit           DW      0 ;16位界限; w; I7 {, X8 U
  28.         Base            DD      0 ;32位基地址
    . |. V, t7 O1 ~4 A1 ^
  29. PDesc           ENDS7 o# T- _6 W; J  z

  30. ! {+ F9 S( ]6 }5 s5 _
  31. GDT_def         Label   Fword
    ) m' o% O1 U0 O( U
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>9 \  t6 L# C0 y0 S/ u( ]
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    / z7 i5 W) b( ~$ x& s

  34. & [2 M6 b0 O5 p, Y
  35. GDT_Addr        PDesc   <$-GDT_def-1, >0 n  @- ^- ]2 d* @% u
  36. DSEG            ENDS                          ;数据段定义结束
    ! C* Y9 ]! z1 _& Q
  37. ; D) O3 N1 N9 i3 u
  38. CSEG            SEGMENT USE16                 ;16位代码段+ |1 M. j$ k; H8 t
  39.                 ASSUME  CS:CSEG,DS:DSEG  `# _( G) u: F/ E# N
  40. .Startup0 j, F4 g9 [5 z8 }$ w+ E3 q
  41.         call      Set4gb
    ' S$ y4 t+ a6 }( q/ h6 c8 S
  42. ;% A( z  q8 Q+ {/ f/ T1 T
  43. ;       fs, gs即能访问4GB空间
    ( @7 M5 d7 m' j- v& e
  44. ;       write your code in here.2 J5 {/ v+ s) J- d+ O3 s6 e
  45. ;& c6 O, L4 n$ |6 l
  46.         .exit
    $ f4 |  C3 E$ g, t& J0 e* k: D
  47.         
    $ P, r9 z& x; }7 U
  48. Set4gb          PROC      NEAR
    # X1 A! [1 Q3 L0 p: O2 D
  49.         in        al, 92h
    , I, L. n( P# b" X9 c
  50.         or        al, 002
    , u+ l' {% i, `, n5 B
  51.         out       092h, al
    ' z1 O: ^. r% \- m
  52.         out       0edh, al( _) C1 Q. |; ~4 N' i4 p

  53. 2 p% L  b, {: o% n0 d
  54.         cli
    4 n7 F8 u& K; Q7 H  o# {: H8 P

  55. 6 v# _" a) \2 N1 V
  56. ;        mov      word ptr GDT_Addr, (2*8-1);( ]5 u) m3 T3 g8 \2 B1 `7 b6 w" O

  57. 8 f' h7 O. I( k" B/ y* T% d' J0 T7 `
  58.         mov       eax, ds
    * B# o/ Q# r2 d3 Z( ], P1 g8 f
  59.         shl       eax, 42 y% K8 D8 t! \0 i" p; R
  60.         xor       ebx, ebx
    ( s" |: Q% k! o5 l
  61.         mov       bx, offset GDT_def
    9 E2 z4 [6 p3 \) u! U
  62.         add       eax, ebx
    4 L) a! {/ k9 ?% E" q$ V+ g7 O
  63.         mov       dword ptr GDT_Addr.Base, eax
    * J  ?! O$ [: T! {, G6 `/ c
  64.         lgdt      fword ptr GDT_Addr7 i# ^& |* d' b' V) s' n7 R! `

  65. 2 d: h- U2 h$ X+ {: f. p  V
  66.         mov       bx, 8! n/ i* a5 n. s1 l& W' x1 }
  67.         mov       eax, cr0: b4 h( ^' |8 E; [3 ?4 i, b
  68.         or        al, 1
    $ o2 T" Q+ u0 t
  69.         mov       cr0, eax7 E/ ]! r7 M$ X+ d# B  m
  70. & x1 g( L: t5 R' u
  71.         jmp       pMod
    : t0 J# t! O' y: X: D* a
  72.     pMod:2 u3 ^% S+ _0 x2 S. @' S' X! N

  73.   Q# h* Z& d1 c$ j6 m3 W$ d2 t  K
  74.         mov       fs, bx
    2 |$ w+ Z0 E, O7 v& d/ {: q
  75.         mov       gs, bx
    ' G3 _+ \5 s  E7 D9 p" T
  76.         and       al, 0FEh
    + w: x1 a: }3 {* {2 p7 t2 P
  77.         mov       cr0, eax  h1 p% ]' [- I4 ?: M
  78.         
    8 }% R! Y4 R1 P& |" X
  79.         jmp       rMod
    6 G* R$ r" E& c5 M
  80.     rMod:+ h% C/ O9 ?3 ~3 f: Z3 {! I

  81. . j9 J9 @: L, i& s
  82.         mov       ax, 0; H, T& V+ E$ t0 Z
  83.         mov       fs, ax
    , {5 _6 t. \5 }, f5 I3 Y
  84.         mov       gs, ax
    ( N% P2 C6 A! |) ]# z3 _+ o6 H
  85.         ; E' X% m* c& z4 G$ r. L8 K# h
  86.         ; 在2M的位置测试写一下数据
    / W# E  ~3 a2 T+ R8 a: i
  87.         mov       esi, 200000h9 z- H. x% t( W% c& I% ~
  88.         mov       dword ptr fs:[esi], 055aa55aah# `/ h% G, ?5 p& O& e5 X4 t; ?
  89.         ; 用RU去看看200000h的位置是否是此数据....
    2 M+ m' P: H! a. [' U0 q3 c
  90. ' S* j4 q8 a7 V
  91.         sti
    1 x( E4 J9 ^$ v/ D$ Y) Z& J
  92.         ret
    4 A) B) a% d0 ^
  93. Set4gb  ENDP
    1 {8 W' i7 J, n. L; K2 [+ P" a" x9 q
  94.       
    . C' {9 b( @+ A
  95. CSEG           ENDS                              ;代码段定义结束
    1 V+ ?( l3 z; O$ l
  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
2 `& a7 {% r* N# B* s0 D! A
+ v9 A4 O8 u" X3 V2 roption->compiler->code generation中的option选中, [X] compile via assembler
/ I! |- L1 ^) x! z7 @  E# B" Y- J$ S( T2 d- E+ \) _4 D9 c
[ 本帖最后由 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;% w6 q/ J7 \( ]0 S4 l
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;9 w( g# k) m2 x; O. a3 t

6 |& h$ ]. M7 \/ W+ l" [GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;* J" F- ^! S# R; g
替换如下,
) O) m5 j9 I( }0 `7 r5 g5 }5 \Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
3 [1 Q2 a5 V5 G6 O" M8 gData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
+ F% V; l, r3 z6 n3 m4 W& D% P% t- _. q
GDT_Addr        PDesc   <$-GDT_def-1, >$ |0 g$ r% J' g9 v8 L) Z1 \4 H
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
( X' L$ Q4 n) `: |! Z0 p; toption->compiler->advanced code generation中的instruction set选 80386
! ?- J5 x) ]$ [' a5 }. Z* K0 N" l) E6 p" I) b8 q4 [
option->compiler->code generation中的option选中, [X] compile via assembler

% m5 r# I1 j1 s9 u0 n7 y/ n   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
% A! ~5 B$ F6 B/ o. [
& i; M" p# ~+ }! `& [   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
4 D. f* d: m8 D8 b: Y( x

7 Q1 d+ Q; p, D) L$ j0 W我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;
3 {; S+ A3 _# e& @8 \1 `! G还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-8 07:05 , Processed in 3.407012 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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