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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
, o" F: m: [7 O$ ?! h& W* i7 \: N/ H
这是C的
  1. /********************************************************************5 e& A$ y# H' K9 L# z$ s9 N) \' C) g
  2. *    File: DOS4G.H                                                  *2 U% O3 U9 f$ [* x5 M
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                */ W# M" U0 n8 P
  4. *                                                                   *9 l# K4 \- ^5 t/ d* w" V1 T/ V6 [
  5. *    ========================Title===============================   *: }3 |9 W0 K) C3 G7 g6 j9 U
  6. *        这个函数是让系统进入DOS 4G模式                             *
    5 F  w+ U2 a: S" V% {( x" B( _! b: n
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    . k$ X  K- i+ m; P. _
  8. *                                                                   *1 N6 [/ Z* X2 v9 t) [5 [- v
  9. *       使用: openA20(); set4gb();                                  *
    8 ]& I) [& W+ n6 F: K
  10. *                                                                   *
    9 |1 W. t+ K# S+ W. N
  11. *   ===========================History==========================    *0 \2 o$ g$ }; a, l
  12. *    author: bini                                                   *- B, G& b8 ]% m  S+ Y
  13. *      date: 2004-11-30  Frist version.                             *. O7 s* T, t4 f$ d" c  Q/ Z* E" h
  14. ********************************************************************/
    . o4 k# G( e. t9 |

  15. ; w! _" ?# s2 F, U, T
  16. #include <conio.h>4 P5 ?' V6 ~) S/ s
  17. #pragma inline7 b2 q# {0 |6 k

  18. * ?# l+ E) W$ A$ P- e4 U7 R
  19. /***********************************************
    ) @" t8 l, s2 E/ S- O  f0 c
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *  ^- m0 N  [5 {. c" ^8 {) H- Y
  21. *    第二个为一个数据段,没有代码段。           *
    6 y: T' V+ ]! T4 Y% _3 o- E, o
  22. ***********************************************/5 y# ?' K5 P7 [" Q" z
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    " [4 ^" x- J" C/ y- [# h
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    - P$ p: ?% ~( N4 U8 r
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
      f6 X/ v" R/ Q- o! n/ b
  26.                                       */
    6 K1 Y; e  E# S
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )* `7 t9 _0 h5 T3 g! K1 Q
  28.                                          最高字节为 base( bit 24~31 )
    6 v7 s" e7 n# [( V5 ^
  29.                                          & Z0 r. {3 S  j) p$ W+ o5 J: q
  30.                                          属性Attrib = 0x8F924 ?; \+ G/ ~$ M, a) z: S
  31.                                          
    ! O6 H% |  q7 W1 C1 \0 Q
  32.                                              属性位Hibyte低四位为
    " F( f2 |. Q2 N/ ~& J
  33.                                                  Limit( 16~19 )=F
    # e" H9 }( U0 n  i# Y+ R- T
  34.                                              属性位Hibyte bit7 为粒度  _0 u( k2 n7 F# t  ~* f& J% A
  35.                                                  (值1=4KB粒度)6 T* x# H4 ]0 B& W3 J  E
  36.                                                  8F & 0x80 = 1
    + h3 e4 h7 ?6 ^8 R
  37.                                                 
    / F0 \" g! V9 C3 M& H5 C
  38.                                              属性位Lowbyte低四位为段类型,值=2
    2 c4 y' @6 q$ m4 y3 b# a
  39.                                                  表示为可读/写段( h+ X# Y* u3 h7 N4 ?) z  n- t
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    2 ^5 t2 J: @( A9 D0 w+ `
  41.                                                  描述符对地址转换是有效的。
      @5 N, D$ _  L
  42.                                                  bit0=1表示为:
    . f8 S# g' q, \$ S' d
  43.                                                  系统段描述符。而不是门描述符。' f; L5 \7 T1 j" E% G* P- {
  44.                                              
    2 V- B" v" o0 D6 E3 u# O
  45.                                          */5 K. C; s/ U- W9 o8 s

  46. 2 i: X8 F; g* M" c3 l4 {  ?, C
  47. /****************************************/ A0 @0 l( [, @' W6 U/ l$ E& j
  48. *    GDTR寄存器, 48bit=6bytes            *
    8 o1 n. C8 ?+ q, }, `3 u
  49. *    +-------------------------------+   *
    4 _' I5 v4 r2 o* y9 E, b
  50. *    |   32bit基地址       |16bit界限|   *
    * g# B) ~/ p$ K( d' _/ j: E1 \' Z
  51. *    +-------------------------------+   *. h' q: g/ f4 U: @2 j
  52. ****************************************/, {+ x6 |3 t1 P9 g! g* c3 v2 O$ Y' Q
  53. unsigned char GDT_Addr[6]={0};9 [0 [* a) S/ }8 S
  54. ) ~5 q' P3 ^) [5 Z5 N, [
  55. /****************8 O+ x3 W! i0 ^! v# t0 l1 ~% g1 m+ G
  56. *    打开A20门    *9 \7 ]5 E# g5 A9 Z
  57. ****************/
    ) R+ F& t+ A2 C  e
  58. void openA20(void)
    : P; ]' ~# m* w; ?" `
  59. {2 R) C" Z& p: r0 Y3 U0 }
  60.     asm{) K2 _: K8 Z7 K  o1 T- B8 b
  61.         pusha8 k) h. U6 _5 k; R
  62.         in         al, 92H
    ' W" k% Y6 T& f0 z7 w4 a. G
  63.         or         al, 0x02& e7 `. @, P& ]7 B0 X- I4 b
  64.         out        0x92, al1 K' ^. s5 N9 |
  65.         out        0xed, al' X, N" a0 l% n# V
  66.         popa
    4 X" u1 _1 \( i  K: B8 D6 B
  67.     }5 y' L1 S) T* I' d0 E6 _
  68. }
    + D1 S- D6 n8 J- I) q
  69. - Z3 K' M8 a) s; o6 i
  70. /***********************************************
    $ X" }& j* ?" g: M7 Q8 a  `: z
  71. *    函数功能:进入DOS4G                       ** M9 T2 [! f9 n7 j
  72. *    ====================                      *- z$ R7 s3 G5 ?) Z0 q
  73. *                                              *
    8 ]3 _3 J+ X( n( h7 J
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
      n1 r; {* A  a9 B/ K& J3 C
  75. *   如:                                       *7 R: j, \9 `9 b6 V) m
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *3 A( N  g) U; {+ r9 Z' |; S
  77. *       表示为 2个GTD                          *
    0 G/ ^; J3 q: `% J  k
  78. *                                              *6 s( G/ t6 N, h
  79. *    选择子为所在描述符内的字节偏移。          *8 w, A: e- D! l
  80. *                                              *+ U* S3 @, D2 w5 y0 q
  81. ***********************************************/# ?' r" e7 z& w. A' B$ p; _
  82. void set4gb(void)
    / k2 W7 p( e* ^: n4 h4 b- L% I" c! ]  ~
  83. {$ u* b( ?5 G: P
  84.     asm{
    # R4 K8 A4 k5 I
  85.         cli- c, M% P5 @; B" v6 W7 a* F
  86.         /****************************************& G- O/ D5 p2 n# m) I
  87.         *    GDTR寄存器                          *
    4 ]- k1 T: ~4 i9 E* Z2 E
  88.         *    +-------------------------------+   *
    5 x9 Z2 l  S+ }
  89.         *    |   32bit基地址       |16bit界限|   *
    / b4 x% p: m* _& \' e$ _1 c. Z# y, o
  90.         *    +-------------------------------+   *' F2 k4 @. i. S" e( \- X: L1 _6 \
  91.         *****************************************/0 l. G% G* R8 Z" f3 n; C1 W; {
  92.         /*********************
      E9 G9 q8 }, U6 t
  93.         *        得出段界限       *9 k5 T0 C# j/ S! k9 k
  94.         *********************/
    " ?$ |: ], U. m' E: E
  95.         mov        word ptr GDT_Addr[0], (2*8-1);4 c7 T* l* n1 S* S- O& a# Y
  96.         /********************************************5 `0 `4 e7 R; w- G3 S) a+ k
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    ( E2 S% O% j0 F& H9 y6 U
  98.         ********************************************/
    ) K8 X! G0 @8 u, I; r0 B; Q& N$ p
  99.         mov        eax, ds! k; g$ |9 ?: E. V9 {1 O
  100.         shl        eax, 4
    / p% q; K3 }. A
  101.         xor        ebx, ebx
    3 L; T) z: O8 @# P
  102.         mov        bx, offset GDT_def
    ( `6 Z* l8 R$ x* n1 Y. L# l/ U
  103.         add        eax, ebx  D& ?& O" ^2 A' x) l
  104.         mov        dword ptr GDT_Addr[2], eax
    6 w! Z  c+ a. g3 H0 ^% K
  105.         lgdt       fword ptr GDT_Addr3 a' t4 f" B. d1 {& t7 i
  106.         /********************
      w8 \' h" X. K; u
  107.         *   选择子偏移      *1 b: K7 L: C5 @" A$ I7 C
  108.         ********************/( L2 m. ?9 i0 S+ u0 s
  109.         mov        bx, 8
    2 Q$ n  r8 n$ P" \) |# |
  110.         mov        eax, cr0; E6 @: P8 D) }5 S( y. J
  111.         or         al, 1/ l* T6 O8 ?& }0 v3 |* `
  112.         /**********************( @# A  u1 m9 T& I/ J
  113.         *     进入保护模式    *
    " }5 v. t2 o! @& Y) x% P. k
  114.         **********************/
    ( @; s6 B/ z+ B
  115.         mov        cr0, eax
    5 [, P( I: k% l0 R
  116.         jmp        pMod
    , ^' P, I: S0 v" B
  117.     }
    & k. n2 b7 S0 Q" x2 x* O, M+ [
  118. 3 |/ K+ z" S; t8 e) k% h! W) N
  119.     pMod: asm{
    1 H& K# X$ b% z# l, Z. p4 Y
  120.            /************************************************************
    6 ?9 H, g0 Z9 T% j
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    5 o9 D2 S7 ?+ Q1 m
  122.            ************************************************************/
    ( W2 E& S/ h' e) Z
  123.         mov        fs, bx: s, S$ [) x9 ]6 |: L+ d
  124.         mov        gs, bx
    6 E6 K: J9 ?" i) E0 b; W, A: C
  125.         and        al, 0x0FE" o& v: Q/ r& E, ~5 k7 E
  126.         /******************
    8 H4 T6 r# z* A4 L# U3 ^
  127.         * 进入实模式      *
    & d& J( T; W) t7 Y  e
  128.         ******************/$ p) z: p# t- k2 [% P3 t: f
  129.         mov        cr0, eax
      K- C& o* {' }& ]
  130.         jmp        rMod2 X: K* i0 [% Q/ c5 Y% q) ~
  131.        }
    % f. B3 z+ m2 S( R6 H8 a

  132. " k* X2 Q" T, k/ B1 Q, \
  133.     rMod: asm{% M8 j1 h; k0 z1 \6 Q1 O! A5 h+ j: i4 P
  134.         /* ******************************************************************
    $ Y( K/ F* S) G- J/ @4 ^3 G
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *2 \, d4 f" H& O- e( ]4 J& |# G( U
  136.         ********************************************************************/
    ( L' Y2 s' I: X. _1 ]
  137.         mov        ax, 0
    9 U: D$ b% A" J2 a4 Z+ E3 y! v
  138.         mov        fs, ax0 N1 S, A* n. h- |' C" m
  139.         mov        gs, ax* ?9 d# g- H1 Y, X0 k
  140.         sti- ^7 Y0 a8 `0 ?9 s1 v& t) k
  141.     }1 h# z+ ^1 t! o8 M7 T; i/ Q5 p
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
      H. @( Z) P4 y3 w- j4 D
  2. ;*    File: DOS4G.asm                                                *6 B: c$ H( Z  G8 q1 z
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    3 I/ B: Q# s1 x- k
  4. ;*                                                                   *6 I1 e8 D- t0 C% G; d
  5. ;*    ========================Title===============================   *
      d* B. {! i0 ^: E7 O/ S
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *: E& M- e5 I4 f+ `
  7. ;*                                                                   *
    5 m( D  @1 N' C) a& H  }
  8. ;*   ===========================History==========================    *
    1 X1 Z- \* e9 k1 q( B
  9. ;*    author: bini                                                   *
    * l) [) x* T1 n* V0 P
  10. ;*      date: 2008-10-08  Frist version.                             *
    # z: K! r; h- _/ z, I
  11. ;********************************************************************/ - X" t, s8 d  B' V9 P7 h
  12. .model small
    * Y) T# U+ \) z3 f4 |
  13. .586p
    - K; i! a# f1 n

  14. 3 h* l, j# e# e
  15. DSEG  SEGMENT   USE16                 ;16位数据段- @9 T# E6 M; B# ]; `$ b1 W
  16. $ D3 a# u: J7 R6 m  j- L2 d& @8 o/ s
  17. DESC            STRUC3 F  w6 A$ Z7 s  U7 b
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    ' _. {8 p8 p$ k8 }+ V+ F. g
  19.         BaseL           DW      0 ;段基地址(BIT0-15)* F* S/ u- e( n3 {7 t
  20.         BaseM           DB      0 ;段基地址(BIT16-23), E7 ?4 l; X/ t# x
  21.         Attributes      DB      0 ;段属性) W1 G8 S' c' H. @) k& T7 {1 c
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    8 _( k6 u" X8 W2 y
  23.         BaseH           DB      0 ;段基地址(BIT24-31)6 K1 m1 l& U$ \6 q) ~/ T
  24. DESC            ENDS0 F" R$ w9 |  m' R# [' ]3 _, Z
  25. & i0 I8 c( F+ n
  26. PDesc           STRUC$ \2 w6 q: A$ T
  27.         Limit           DW      0 ;16位界限
    , k# h9 c7 w5 O! `
  28.         Base            DD      0 ;32位基地址/ Q' Y0 y1 h2 M; z4 y0 J
  29. PDesc           ENDS# |/ S- D5 [3 z" q; R! S

  30. & H# v5 N8 R. w' M$ B; U1 j
  31. GDT_def         Label   Fword
    ( _; \% o* x$ F. f: Y
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    1 G/ L6 c  c! i) {. l* G2 L7 p2 o
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>) @. @  b# _7 W# Z; a
  34. : i+ g" O  ^8 b
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    " S% Q- t* r9 @9 y7 f& ^
  36. DSEG            ENDS                          ;数据段定义结束
      _( R1 @' E0 A) ^' R
  37. . z4 L- C/ w. i" [& h( _8 H
  38. CSEG            SEGMENT USE16                 ;16位代码段: d& t- N; ]& P- Y  V3 ]
  39.                 ASSUME  CS:CSEG,DS:DSEG' j1 y& p  P! ^! A9 R, T
  40. .Startup  v/ f; _. W/ r! D* P
  41.         call      Set4gb! x, _0 [# Q' R* h6 P
  42. ;
      X# ]6 g9 `9 D8 o; m& \) `
  43. ;       fs, gs即能访问4GB空间" \: `+ @7 ]/ a' f3 L$ E" B, y
  44. ;       write your code in here.
      w. {& u7 s2 @( i3 @/ u
  45. ;' T9 U0 m. V: T5 O7 C
  46.         .exit8 ?/ k7 S" E4 R
  47.           |5 @" T' r) a# w3 ^3 A7 X4 k
  48. Set4gb          PROC      NEAR
    $ J. w( K! R1 D/ O% M
  49.         in        al, 92h
    ! M" i# T- `( S% E1 X( i6 B
  50.         or        al, 002
      S- U1 F5 S6 v* Y* I
  51.         out       092h, al* O5 d. ?2 S9 M) z5 i# V
  52.         out       0edh, al: [" w$ l9 y% Q4 j1 c5 c* ?

  53. 7 [. |. W: D8 p+ i
  54.         cli# e3 o7 ~% X( r/ O0 ^/ j! P6 E
  55. 1 P+ w3 Z7 U" ?, C+ T. t
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    ! o* Q% x% J& M2 I+ A- X
  57. & d9 g% L! m# `
  58.         mov       eax, ds
    - s! K9 @5 s5 F1 \: r% b+ S
  59.         shl       eax, 46 j9 g- ~! B. C& m- e0 [; f
  60.         xor       ebx, ebx- f' U* d7 k% u. e
  61.         mov       bx, offset GDT_def
    - ~' N2 v7 W! f2 n- m1 v1 q7 O
  62.         add       eax, ebx% q( v. F  i* X  a7 [8 k9 Q
  63.         mov       dword ptr GDT_Addr.Base, eax
    ; U5 z& i' @+ X) {
  64.         lgdt      fword ptr GDT_Addr
    ' l1 U( [9 I  ]! i: C

  65. # A* l; p6 W9 K9 Q# U# j
  66.         mov       bx, 8
    0 O3 U8 {1 M4 p$ j
  67.         mov       eax, cr0% M" U+ x  L# N' C' V
  68.         or        al, 12 I2 \" o6 f5 l# I( D8 v/ ?- `
  69.         mov       cr0, eax% L" C3 G) v: D7 |7 _5 D. [; }) \
  70. 3 r0 O/ e$ g$ o
  71.         jmp       pMod
    . n. N, s. i: {/ z
  72.     pMod:
    ) _" k5 A# D2 F* O0 ^+ f$ _  X
  73. ) n9 A5 C) q  G
  74.         mov       fs, bx
      [# G. K+ ~& h/ \
  75.         mov       gs, bx
    ( ^, L8 i' w1 _
  76.         and       al, 0FEh5 t" ~% S* ~* ]  y6 i/ g0 `4 y
  77.         mov       cr0, eax
    0 J+ M" o2 ?, s' B7 K
  78.         
    : X; w: h6 T0 c7 ~+ f/ H  B
  79.         jmp       rMod
    $ J, p5 b& _/ Y8 i& W
  80.     rMod:& i7 E: u& l0 r+ R3 ~
  81. 6 F! r& u% X- q6 Z+ @
  82.         mov       ax, 0
    2 E& F8 i& O* a. |6 S
  83.         mov       fs, ax
    * C# Q  m5 _& U( m
  84.         mov       gs, ax
    - \# ~8 ?, }+ q; ]% o% e
  85.         
    % {7 G3 Q3 D  c/ q6 U5 O! C/ r& E- D
  86.         ; 在2M的位置测试写一下数据/ F0 Y8 R3 `7 E/ I
  87.         mov       esi, 200000h) W1 f$ S3 e! s" O7 P) g5 n) ?
  88.         mov       dword ptr fs:[esi], 055aa55aah1 x' S& R1 I  D$ ~( _. W# ]' e2 C& ~# ^
  89.         ; 用RU去看看200000h的位置是否是此数据....
      H: G3 U* l" E# _: a4 `8 X. P  R
  90. , a3 k6 l- X" ?" C
  91.         sti
    " v2 f2 Z. m3 X/ U; w/ Y
  92.         ret9 b5 m" O1 ~$ P. t
  93. Set4gb  ENDP+ o5 }6 s7 [5 }* B
  94.        ; f( F3 a( O( N
  95. CSEG           ENDS                              ;代码段定义结束& |3 g- h0 J1 `
  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选 803862 s' j- {( s: H7 T  N

: u+ \8 v) Q, }" H- v0 [" Y' Doption->compiler->code generation中的option选中, [X] compile via assembler# c) h" _; l& M! t6 a* T

- A) F3 _0 [  ~' T9 V" C8 j" G[ 本帖最后由 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;
: J: n0 ~  p3 y) X$ K2 ?Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;/ B5 W$ M' t3 E3 O5 ~, h9 M: b

) T" }; B, o8 y' x: h. F3 EGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
. O/ b( H  {( h& o; R+ G* y 替换如下,
  ^0 l% O; J& L" j2 r: O4 K1 F" iNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
) ^: g6 n$ K  F% y! h4 v0 `Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
6 \' O) W) Q9 h- N+ ?& \- @8 H% F# ?! k, O$ h
GDT_Addr        PDesc   <$-GDT_def-1, >
; F" F5 j4 O: v- w这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
8 n' j! {2 H8 m( ~4 Q5 ]- noption->compiler->advanced code generation中的instruction set选 803866 D, q0 |% R+ }2 ?/ N+ g+ b7 S$ i

. C: g" J9 b' e( w) u, \! e' X- Ooption->compiler->code generation中的option选中, [X] compile via assembler
% d9 I0 }8 N% o: P
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
1 Q  C* W& j1 a; v6 d# ?: h# F- g$ l! [
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

. n# w  w2 d8 \  |& a' c6 ]/ H. z) `$ k5 k) F  _
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;
4 k- w8 a2 ^! l7 e) ?+ R# b还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 04:22 , Processed in 0.058149 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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