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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。  E" n$ j; c. \6 V% d- W
9 j7 D/ u  J1 u+ i
这是C的
  1. /********************************************************************
    # N- Z$ v4 m4 o% d: x
  2. *    File: DOS4G.H                                                  *" `7 H7 X5 h% Z2 S! r$ v
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *" n- X7 u& t: m3 P2 ?: r# n6 b
  4. *                                                                   *
    3 E" L0 s9 b! S/ v
  5. *    ========================Title===============================   *& b; f/ d" ?- |5 U, Z
  6. *        这个函数是让系统进入DOS 4G模式                             *; j  U2 ~( b: E- M7 B/ N- i
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    + F* `* f! M8 F2 \$ B  S1 z7 v, ~
  8. *                                                                   *
    0 i0 D5 \) |3 C
  9. *       使用: openA20(); set4gb();                                  *' Z4 d$ m9 \: z- T8 [1 O4 t7 Q0 P
  10. *                                                                   *6 A6 z0 i1 v8 r$ m# x
  11. *   ===========================History==========================    *. [1 @' u" Q" w* n% [* c: F
  12. *    author: bini                                                   *5 C( S! |. r2 z0 V' L
  13. *      date: 2004-11-30  Frist version.                             *
    6 B$ N3 w$ c. ^) x. c" _
  14. ********************************************************************/4 t- s, y0 \. g5 m- n$ R
  15. * @% L4 w" ]2 q
  16. #include <conio.h>
    2 u. @& t$ ^& M, Z: X9 X$ _- \6 L
  17. #pragma inline
    & o9 i5 P; g7 U
  18. $ Y) @2 a2 y  ^% X' M- |, u
  19. /***********************************************
      o' m, ]* [2 H' e' ^3 H
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    / L1 n  P! B# M! [1 V+ B0 K
  21. *    第二个为一个数据段,没有代码段。           *
    - U' x% N/ N) U3 t) U
  22. ***********************************************/
    : S' z! X0 o. `9 [( u
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/- w* {; C5 i: }. z8 k& `" }% Y+ Y
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    ; c4 H: {- H6 |' {: U" U
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    0 s" ?/ ?$ @1 P3 o  N; @. ^/ p  K; c
  26.                                       */
    9 K+ F+ [/ R0 j$ ?. D
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    " {* ?6 F( W/ W; k
  28.                                          最高字节为 base( bit 24~31 )& Z$ }, _5 a$ X" ]8 s! ]/ [) G
  29.                                          - S& N+ D# E% o; W( n
  30.                                          属性Attrib = 0x8F92
    " Z! b% s& ?& |- k" |3 F, \# a+ l
  31.                                          * h- l2 Z) K6 z  U
  32.                                              属性位Hibyte低四位为 2 O1 A' m1 @9 H+ G: f
  33.                                                  Limit( 16~19 )=F
    * W/ d8 W/ X0 ?! d9 n7 T
  34.                                              属性位Hibyte bit7 为粒度
    # R9 Z- [4 i5 y+ p3 k2 y
  35.                                                  (值1=4KB粒度)* [# h9 I! K& X4 S8 w; m  t. o
  36.                                                  8F & 0x80 = 1" t  s1 b9 F) [; w
  37.                                                  9 y0 V2 q# z" Q( H' @9 x
  38.                                              属性位Lowbyte低四位为段类型,值=26 ~. Y' d7 [5 `1 T; n
  39.                                                  表示为可读/写段5 d8 t; @5 z* N) w7 u0 B0 S2 c$ n
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    $ d" m5 y2 y/ O! Z
  41.                                                  描述符对地址转换是有效的。1 }; y+ R5 J! c* k1 K. n. G! w5 b8 c
  42.                                                  bit0=1表示为:
    3 O3 d  D3 N+ `* X) V5 @/ G2 |
  43.                                                  系统段描述符。而不是门描述符。4 u4 g6 a/ L0 N4 X' R: o1 Q1 A# m) T
  44.                                              
      q9 v. m) ~) C8 |
  45.                                          */+ g9 F; ]* g6 g0 X; J  z, U

  46. ' D6 j* Y4 Y' _7 C, r
  47. /****************************************  _  x7 w5 a3 R$ {8 X" p5 E
  48. *    GDTR寄存器, 48bit=6bytes            *
    # }8 u" H; A$ P7 k' k7 c- d
  49. *    +-------------------------------+   *
    8 m; c# k# [/ Q" c6 `& X0 d
  50. *    |   32bit基地址       |16bit界限|   *: K6 u6 R% N6 ^' j% o
  51. *    +-------------------------------+   *
    & S  ]1 R* B3 A6 y
  52. ****************************************/7 a; A+ u6 G6 o( S! a: b7 W
  53. unsigned char GDT_Addr[6]={0};# \2 U( L4 ?! \2 l

  54. 5 p* M. R6 M, u
  55. /****************% u8 ?* E, A: @6 z  @
  56. *    打开A20门    *& I( @2 m  @! t" }
  57. ****************/: ?. K. n' t8 q, L2 L
  58. void openA20(void)
    ; `  k# L( |9 t# |& c% T1 U
  59. {$ Z5 s$ T7 L; j6 x) X& U
  60.     asm{3 u3 \, j# K/ u$ ?0 f# E) ]( h* U  t
  61.         pusha  k7 f4 p$ j. X: t% c" k; F3 G
  62.         in         al, 92H% L- ^. n! w: Z7 m0 Y% Z8 r
  63.         or         al, 0x02
    , \/ {0 }- q) E+ i2 Y% i# Y$ X
  64.         out        0x92, al& Q( l. m& Y) Z& _
  65.         out        0xed, al& G7 p) G0 {% s
  66.         popa! L1 E" z% a. O2 w% L
  67.     }9 p2 n( l4 ]2 p' }
  68. }
    5 e- e2 M" k4 l8 L

  69. : Y) w  X  S. d1 C$ F* P
  70. /***********************************************
    * @( F% \! p% X7 \$ ?
  71. *    函数功能:进入DOS4G                       *  g8 l- U, r* e* Q
  72. *    ====================                      *6 H3 z) }/ {+ m/ C* _
  73. *                                              *( F& X9 `( Y( g! c3 Q2 W* D2 {
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *" w/ w6 C$ [/ I! j
  75. *   如:                                       *# S7 J2 n! N  c' i) ]2 W
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    : ?! @' r! Z- z
  77. *       表示为 2个GTD                          *
    + q  O, u( R8 V' z# i  }7 L
  78. *                                              *
    & {# S2 K4 `' e) _- s+ O% s3 g" v
  79. *    选择子为所在描述符内的字节偏移。          *
    . t, z4 b0 B' C: s" U! T, m, o
  80. *                                              *
    7 T" S7 f! l- q! F. Y' h
  81. ***********************************************/
    1 [# h" a/ r. Q/ W0 |- Y
  82. void set4gb(void)! r0 ?3 ?! y- W6 y
  83. {
    5 E' P) b. j6 F. j5 L( B% W
  84.     asm{9 q: V( a# |2 X0 O* k. `. K
  85.         cli
    ' J4 J8 Y5 a: ~7 v. P
  86.         /****************************************
      U/ ]3 X& f, m, H) `$ t
  87.         *    GDTR寄存器                          *
    0 E: u4 P' e/ o) x: U9 C! T, i
  88.         *    +-------------------------------+   *
    0 V8 K8 h5 ~* D9 F
  89.         *    |   32bit基地址       |16bit界限|   *
      k& m3 Y! R  d
  90.         *    +-------------------------------+   *
    5 [  @+ b/ n( [2 Y
  91.         *****************************************/) Z* E" ~  y/ d% I/ ~  l/ ?8 @3 u( B
  92.         /*********************6 `' S2 M/ }- y0 l* T
  93.         *        得出段界限       *& [1 k$ z( I% H9 N+ {  }" d
  94.         *********************/. _9 ^' I7 S6 g6 F6 q" r6 M
  95.         mov        word ptr GDT_Addr[0], (2*8-1);# P% M" v' q0 H1 x* t, j9 N% G' H
  96.         /********************************************, E% A3 w% o! z% W! c$ S& w
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    ( S) @: \/ J" w' B" z/ o! B
  98.         ********************************************/8 U* K3 e# E& P. u  W, j) v) _
  99.         mov        eax, ds
    1 _: T* j3 u, f# T4 i+ p& m+ @
  100.         shl        eax, 4
    0 b6 }& I5 h8 Z9 q" O2 y
  101.         xor        ebx, ebx6 t& a  v! g2 a
  102.         mov        bx, offset GDT_def
    : I7 r! }6 Z, n% |' J9 W4 X. U0 I0 V2 @
  103.         add        eax, ebx
    ! O, s4 o9 @% a$ v# W4 Q& r
  104.         mov        dword ptr GDT_Addr[2], eax8 @/ a2 N! R+ V& z1 o
  105.         lgdt       fword ptr GDT_Addr
    + m1 j2 D) s9 V3 t7 r- u" v  h
  106.         /********************6 L% Y, f7 n9 i8 l2 k
  107.         *   选择子偏移      *$ b" ^. p; w9 B5 f$ k+ Q
  108.         ********************/
    4 z, g8 b, N& j9 X
  109.         mov        bx, 84 m0 ]+ ~* k1 [7 \
  110.         mov        eax, cr0+ [; Y/ J, ^  v% t
  111.         or         al, 1
    $ O. P% a9 _+ z8 k: p; g
  112.         /**********************: P! b, n$ B6 m) g
  113.         *     进入保护模式    *2 B' Z( Z4 w& K1 b$ E+ N! A
  114.         **********************/
    " \1 |9 T5 ], m, ?
  115.         mov        cr0, eax5 t3 l, ~7 O/ S7 I! v
  116.         jmp        pMod( e  G6 G2 @, l* S: G; x8 w
  117.     }
    # T& r% m% M5 ^0 ^# h. Z
  118. ! ^  ?% \' \& y2 ]
  119.     pMod: asm{3 q8 ]  B9 m! l& n5 [2 P
  120.            /************************************************************
    + `4 v# s) q6 q& p6 q5 X; ^
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *% U' r/ K9 X! I2 M0 M1 L
  122.            ************************************************************/
    * W- |5 e  r3 r# p; p+ v
  123.         mov        fs, bx* v7 N3 w; y+ y
  124.         mov        gs, bx
    7 t" \) L2 [' v: N# H" p( B' B
  125.         and        al, 0x0FE
    . O1 ]/ m3 E8 v! g- R& F6 h
  126.         /******************
    ; T6 r$ m4 {* O& O2 O% B
  127.         * 进入实模式      *
    ) R6 D7 y6 a. s+ u0 B
  128.         ******************/
    $ O9 W: }+ _5 m7 E4 u
  129.         mov        cr0, eax' U, i/ @' W5 s- U( A' Y, R
  130.         jmp        rMod& u2 Z/ \; S* Y" f! G/ l; h
  131.        }
    ) l+ n" l0 m9 h$ \

  132. " ~2 K% \7 ], ~6 l, G3 F0 u4 V
  133.     rMod: asm{
    8 E/ H1 g. I5 u) |7 H2 w/ O! N# e
  134.         /* ******************************************************************' D8 |! @0 A% g* v
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    # h8 c; O6 C( I# \. E0 E5 D
  136.         ********************************************************************/7 |+ ?* R2 `0 N7 W, }7 V9 E# {9 r
  137.         mov        ax, 09 `. p2 F8 X( Q* K+ M: e9 y
  138.         mov        fs, ax9 y7 x, ]2 K  X& t% o% h+ W
  139.         mov        gs, ax
    / V  l" A; w0 @9 w' I6 y
  140.         sti
    ' |+ k5 C! C% V5 o# o2 B
  141.     }
    " K* Z! B: j. L
  142. }
复制代码
这是asm的
  1. ;/********************************************************************7 S& q0 B. J' M4 f5 N0 c
  2. ;*    File: DOS4G.asm                                                *- u$ C' G$ D" }
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
      Y5 H: ~# M: W/ _& C/ N
  4. ;*                                                                   *2 `4 p9 _, D" N" S/ n
  5. ;*    ========================Title===============================   *8 K- }, E& Z. A$ z7 {
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    " @7 _- Q9 t* _
  7. ;*                                                                   *
    3 k4 F0 O4 X( }# K% E1 R
  8. ;*   ===========================History==========================    *
    + D, J* w/ x; l& f- g2 T; r$ U2 `
  9. ;*    author: bini                                                   *
    , N' o/ Y5 @1 j5 C: s" j
  10. ;*      date: 2008-10-08  Frist version.                             *
    # R4 Y( D& s- D. [) R6 `
  11. ;********************************************************************/
    8 K5 P; P1 o6 _" b( W
  12. .model small( Q; n) V. y0 I, b
  13. .586p
    ; v. ^" ?5 L: h- J2 T

  14. 3 h1 D0 x, c$ t: |/ W9 f/ g
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    ( g5 d) a2 X# c

  16. ) V6 P6 C; R; n6 N2 e# J$ d! v
  17. DESC            STRUC! ^" \9 C' K# ~
  18.         LimitL          DW      0 ;段界限(BIT0-15)+ y% o* g) J2 E0 \. l6 X! Q: e
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    7 m6 ^/ P7 B& E; E6 ]
  20.         BaseM           DB      0 ;段基地址(BIT16-23)+ `8 c' Y2 E8 J
  21.         Attributes      DB      0 ;段属性
    + ^' @$ ~* y- S) I
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    + b' d  K' f- L- Z+ Y) w+ {) Y
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    / i! n; m! R9 f& k) B
  24. DESC            ENDS' k% m) k  v5 @1 f; o2 g
  25. ! K. _3 p1 n4 J
  26. PDesc           STRUC
    3 Y# ^& f& @$ \2 c3 R
  27.         Limit           DW      0 ;16位界限
    ( P1 }7 N# u: j2 X' M+ A
  28.         Base            DD      0 ;32位基地址6 z9 B8 N5 n% _; ?5 b- s
  29. PDesc           ENDS8 \3 E/ M/ l! i/ }/ P$ o/ z) E

  30. 0 v; }  F% r0 B4 |: I- S$ `
  31. GDT_def         Label   Fword
      a2 K" w0 [) ]9 _5 M. a
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>, }1 [# s) T+ W3 y% ^. j# P4 r
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
      ?5 V$ @/ e* F& O3 \4 Y) P
  34.   _$ L( J2 Z6 P9 L* G0 k. K
  35. GDT_Addr        PDesc   <$-GDT_def-1, >; W8 N5 ?1 D/ b) W% g
  36. DSEG            ENDS                          ;数据段定义结束: N, `" `6 I* U9 ]

  37. : C, n* X  {( g! c& F' n  v' z7 T/ _/ K" w
  38. CSEG            SEGMENT USE16                 ;16位代码段/ ]/ L* Q6 ?' K2 z  m+ D
  39.                 ASSUME  CS:CSEG,DS:DSEG
    1 j, ~9 a2 F/ V+ h3 Z# N/ C! D
  40. .Startup
    & _5 A5 {( ?5 O) b! ~" C
  41.         call      Set4gb/ j" h% W8 e  @# O& A
  42. ;; U0 H" @# x5 b( ?2 d
  43. ;       fs, gs即能访问4GB空间
    4 y( J- B+ v/ T
  44. ;       write your code in here.
    4 W& y( {% {% W& @" \/ p/ l
  45. ;2 b" Z2 Z: R( a( @
  46.         .exit/ G" @; O  Z8 j- R/ X
  47.         
    * b( i2 v9 q% n6 [# [1 p9 G
  48. Set4gb          PROC      NEAR/ S, K2 s( W2 f0 v
  49.         in        al, 92h: h2 @6 u- n4 c  m) k
  50.         or        al, 002
    , r9 {1 T. @* S7 Y6 w
  51.         out       092h, al
    9 n  w( R0 t2 G9 |* X
  52.         out       0edh, al
    . L- |9 v( q- y/ \7 V
  53. . \1 S  [2 f. S, Z9 {
  54.         cli  k+ J2 X* O; P1 h1 N# r

  55. . S# k7 y+ O6 i5 j+ ^3 ~- y: N6 }
  56. ;        mov      word ptr GDT_Addr, (2*8-1);7 G' \8 G- e% H6 f  i

  57. 7 g! \$ O) B( ?6 Y: |# l7 }
  58.         mov       eax, ds
    # j3 s; u" ^- W2 [. K) H
  59.         shl       eax, 4
    1 z  ~  ~) m) x' [5 L
  60.         xor       ebx, ebx
    : a$ I9 U" q8 k+ V+ M+ m
  61.         mov       bx, offset GDT_def
    $ A7 J% C! N% f, E% e# Y
  62.         add       eax, ebx
    $ C" u. V/ j8 v
  63.         mov       dword ptr GDT_Addr.Base, eax
    - B6 |$ ]& q& J5 A
  64.         lgdt      fword ptr GDT_Addr
    ( ^6 V4 `+ |2 m( G# _
  65. 1 X8 n/ g+ r" P/ g! n+ `
  66.         mov       bx, 8( w% g. v: m4 s6 `! [1 w. i  O- ~
  67.         mov       eax, cr0
    - P6 P: p$ w' J" H# o5 [
  68.         or        al, 1
    ! c, T8 L/ d% V6 }- n) p/ j6 V* ^
  69.         mov       cr0, eax
    ( `2 g. Y+ j& |/ O* a

  70. 8 B1 k* h  n7 w5 D" V  `
  71.         jmp       pMod# @- X" C3 l- P3 B( v. ?6 P
  72.     pMod:
    + R; L2 k/ D' V
  73. 9 p9 @/ I  z7 [" J/ u  `
  74.         mov       fs, bx- ]/ o( d# X6 O0 b
  75.         mov       gs, bx
    1 u! y  x% U6 T4 C# I$ I1 |5 b
  76.         and       al, 0FEh4 ]. e& ~6 }0 w
  77.         mov       cr0, eax' W; R) T7 s& r; B! K1 f
  78.         % F, l: t7 w1 U) Y& _- \" r
  79.         jmp       rMod3 L4 ?( x9 ^2 S/ w: e/ j3 {
  80.     rMod:7 u! k5 v6 F+ U8 j7 j* i2 s' e

  81. 8 Z  g7 Z; z, j7 _9 k0 U  H0 r
  82.         mov       ax, 0
    5 A$ H" g$ Z% _' q- k
  83.         mov       fs, ax
    3 M9 u+ E# M: F7 g& y; W0 S9 {
  84.         mov       gs, ax! ~! n9 y9 ^3 N/ Y2 S) z( o& z
  85.         . W  ?. p: K0 ^+ B; T
  86.         ; 在2M的位置测试写一下数据
    # {" r9 t. n$ n& [8 ~& P4 V
  87.         mov       esi, 200000h' G6 R4 l( Z5 t# t
  88.         mov       dword ptr fs:[esi], 055aa55aah
    : ^1 K" n  L2 v' [0 H( R8 n
  89.         ; 用RU去看看200000h的位置是否是此数据....; g3 |) z1 c' ~/ T
  90. 9 C: u% L) e( t  d+ w
  91.         sti
    ) Y- Z2 V3 ?/ E5 q9 G( {( z! X
  92.         ret2 {+ k8 D1 F. |' e8 p
  93. Set4gb  ENDP5 l7 p! K! b2 m* S
  94.        6 W; S) X2 b7 i: A
  95. CSEG           ENDS                              ;代码段定义结束. h$ e( |9 W; A+ x5 G' c
  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* M5 B0 c5 a* ?

! M% I1 {  [' ^7 noption->compiler->code generation中的option选中, [X] compile via assembler+ v9 [2 `( m6 ~  L6 V' X

4 f; T) L; Z3 o( Y7 |0 m[ 本帖最后由 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;" B- E2 I: _6 [
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
, J) Y- s# {2 h8 L  ~
/ i& p' L  T( n5 F& PGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;( z" ]" V/ i& t$ _7 _" ?+ ~
替换如下,
) p/ Z- q6 ^* @, Q! Q# _2 @# T  SNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>' z+ R) u; k4 `
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
8 ]( }2 k: g; H4 T0 b& q: G) Q1 z4 e& {0 ^' Z5 ^1 O! D8 w
GDT_Addr        PDesc   <$-GDT_def-1, >& W/ a. h, b( @" A) 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 发表
, }! ]4 o3 y* n: O0 ]3 Boption->compiler->advanced code generation中的instruction set选 80386
+ j. T, t6 U5 O. v9 q: a3 ]- }' U! u% J% `1 Z/ u' J7 m
option->compiler->code generation中的option选中, [X] compile via assembler
7 Q( m5 ^* D! B, Q# _. F
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 0 s* l! ?2 {& p
0 e  i: |! q; A7 E/ m& H
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

: H* b" W& f3 C
8 s/ F0 u. K& z3 K6 ~' m1 W我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 06:53 , Processed in 2.872844 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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