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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。' n( b& G- z7 f+ J

( d$ F( s0 [4 Y这是C的
  1. /********************************************************************/ q) ~/ K* K. E  x$ j9 n
  2. *    File: DOS4G.H                                                  ** q; K8 x5 ?7 x% ~/ @! x
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *+ Z# b5 ?. }1 H: X, g' L
  4. *                                                                   *% D, c! ]6 S  t2 q: ]& c
  5. *    ========================Title===============================   *
    3 T# U2 U1 r( |( M! P+ Y
  6. *        这个函数是让系统进入DOS 4G模式                             *
    ! \' `0 P" m3 q+ Q$ A4 m) W
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    , F$ o% Q4 x" @: `0 ^) |8 h7 T
  8. *                                                                   *" `8 `3 q3 a& e9 F: @1 ~
  9. *       使用: openA20(); set4gb();                                  *1 ?4 }/ {' `2 N2 G$ ^; \
  10. *                                                                   *% p9 b6 F* J8 e# X: s9 J' @% u
  11. *   ===========================History==========================    *
    , X  g9 V& G2 [( J( A/ S. z9 Z
  12. *    author: bini                                                   *
    % Q. D- s' C( ^2 k9 R/ N" b) v
  13. *      date: 2004-11-30  Frist version.                             *+ r$ T" \5 [" Z5 d
  14. ********************************************************************/, E9 e8 f* `* y# S
  15. / _! n! S( }0 l7 _
  16. #include <conio.h>
    8 G+ f, S5 A& m7 o0 u
  17. #pragma inline
    2 d5 \# k  L7 p* b; u

  18. - \4 R% S9 T* v: V0 T) A3 b
  19. /***********************************************
    # c1 L5 F  V* h
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    & W- n, w0 y: v+ l- J% N2 r
  21. *    第二个为一个数据段,没有代码段。           *
    * t+ n/ I* v6 C' x- b9 D
  22. ***********************************************/
    - z. r, j# i" |) _: [
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    - \9 {3 B0 x. {: s) ?' p
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    . i- V- M! s8 o- @" O
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF . s4 O1 y' w& L& B4 E) z
  26.                                       */
    1 _+ P$ ]+ W4 f
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    1 h/ H' ?) f4 c& e/ ?, X' h' i. S
  28.                                          最高字节为 base( bit 24~31 ). i7 ~7 ~* ?3 k( Z
  29.                                          : N8 k: V% i& ~6 m: I, L. w/ k4 m
  30.                                          属性Attrib = 0x8F92
    1 y. ?5 ]/ o  z+ Y/ m
  31.                                          
    7 [" a8 h1 S- x- A
  32.                                              属性位Hibyte低四位为
    8 a% o# b/ w; c
  33.                                                  Limit( 16~19 )=F
    " s6 T7 o) s: C" _$ m, ~
  34.                                              属性位Hibyte bit7 为粒度" F5 u, L6 {2 i& b, V, Z; O
  35.                                                  (值1=4KB粒度)  t$ X. \; i3 s6 `
  36.                                                  8F & 0x80 = 1
    $ z2 f) t2 Z1 j4 ~4 q7 y8 p; B6 b
  37.                                                 
    - a+ @' E/ S; p; _. s
  38.                                              属性位Lowbyte低四位为段类型,值=2
    # ~8 P" I3 _; h( d# e2 o
  39.                                                  表示为可读/写段; P8 {4 }- ^* \. l4 f4 u
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    # ~% i3 A% ^$ S$ ]+ H9 Q4 x
  41.                                                  描述符对地址转换是有效的。: w( `  e, G7 {  S- w
  42.                                                  bit0=1表示为:6 x4 y/ V, ~: m: ?
  43.                                                  系统段描述符。而不是门描述符。
      Y; W6 q3 z% ]# a, X- s5 q
  44.                                              # z2 C5 r/ q" {1 q9 y( Q& e6 ?
  45.                                          */
    ' l% J5 f1 K: B7 q
  46. $ W) s" w: W% G; }5 g( o6 d% `
  47. /****************************************
    0 p# Y% [% i, w) O
  48. *    GDTR寄存器, 48bit=6bytes            *3 l6 M* y& b" [2 T* A* {0 v
  49. *    +-------------------------------+   *: i* n1 m% N+ d9 o0 d! u* M* d
  50. *    |   32bit基地址       |16bit界限|   *
    9 J$ M6 D9 `# ]' g
  51. *    +-------------------------------+   *! v; l3 J6 b8 b
  52. ****************************************/
    1 a0 v5 t) o3 G
  53. unsigned char GDT_Addr[6]={0};* M  L" B3 X* c( i. V' @7 k
  54. 9 ?8 ~+ \2 v; t: C( d& s
  55. /****************
    8 M1 v6 W8 m) N: x5 U) \9 T/ r
  56. *    打开A20门    *
    / r+ P9 A% w2 x, U
  57. ****************/6 E9 s2 N5 i, v+ z/ q5 X
  58. void openA20(void)1 q& S5 M. [4 P/ m' a. k
  59. {5 N# X; M$ d1 n7 g" b1 I. ~( t
  60.     asm{" v$ Q2 }; N: s! ~" |
  61.         pusha- |% V" Q* y( O8 s
  62.         in         al, 92H% q" D6 y( s* p( \: b) ^
  63.         or         al, 0x02' f  h9 T9 \( G0 ~" T
  64.         out        0x92, al
    ' K) u4 I+ y4 ]: i% S
  65.         out        0xed, al
    ! U. L9 P5 g2 G! F$ O2 I
  66.         popa
    " s4 |  Q+ |/ B* [/ F
  67.     }
    * }# V9 l+ f+ B% l: W  v
  68. }6 h% I: w$ [' @; }
  69. / x; V4 r. R5 g; v3 ?8 {
  70. /***********************************************, B1 ^4 N! A; V' K
  71. *    函数功能:进入DOS4G                       *
    1 ^7 o' ^6 \5 Z9 E' r! @: I
  72. *    ====================                      *
    2 H8 h: q' J1 f: V0 i( }3 s4 J
  73. *                                              *
    . _- R2 D/ {" h
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *5 l: E5 V; `; t: ^, O0 ^3 ^9 y; ^( _
  75. *   如:                                       *
      k/ R( L' M" d: X# `% P" q
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    & o7 Y$ n7 }7 O' f6 z! @
  77. *       表示为 2个GTD                          *, X& Y; |. L2 N- `4 O
  78. *                                              *
    8 ]( Y7 d% a1 j
  79. *    选择子为所在描述符内的字节偏移。          *6 V0 K( T2 O! B, G/ U  T! p
  80. *                                              *
    2 C8 F3 a! @! u% H" D) N2 a
  81. ***********************************************/
    5 b! ^  S5 f' @+ D% O
  82. void set4gb(void)0 [; m6 x8 l9 o3 [# d7 X4 T* z
  83. {" ^# _9 R0 b4 V0 @2 Y* W2 o- a
  84.     asm{
    , Z$ w, T: a& k# F7 h6 h0 A8 U
  85.         cli/ g: j3 [' l: Z8 V0 F
  86.         /****************************************2 j5 c2 B) x! J* c8 y
  87.         *    GDTR寄存器                          *
    9 A- q$ \* }; e
  88.         *    +-------------------------------+   *
    ; k- K0 H$ J( u, m& X3 R& n. I# h. m
  89.         *    |   32bit基地址       |16bit界限|   *" @* C( n1 L- k' w- h
  90.         *    +-------------------------------+   *$ M3 m, ]! _) R7 Q; J
  91.         *****************************************/0 H' j" v% |, s  g5 p- B
  92.         /*********************
    2 L* N5 y0 ~' S0 D, F4 ]
  93.         *        得出段界限       *
    0 ~2 _( b$ ?7 s" n
  94.         *********************/
    7 g: q4 G( I% c
  95.         mov        word ptr GDT_Addr[0], (2*8-1);9 g* N6 ~: \3 K
  96.         /********************************************
    5 c3 U  ~  s1 f2 @' A* q
  97.         *    计算GDT表的32位基地址,存入GDTR        *  V7 Z9 q& J# F& c) q0 q
  98.         ********************************************/
    $ H  j! ^# b( I$ d# [
  99.         mov        eax, ds
    7 o) x  R7 T0 G. G- m
  100.         shl        eax, 4' r1 A' Q& f3 l
  101.         xor        ebx, ebx. x- T" b/ F# X! f# d
  102.         mov        bx, offset GDT_def4 _9 J3 l( Y8 @- f
  103.         add        eax, ebx. j8 }- T7 p" a. N/ M# G8 c0 x
  104.         mov        dword ptr GDT_Addr[2], eax
    5 D1 }  L6 E8 f/ m1 r
  105.         lgdt       fword ptr GDT_Addr
    ) b: a$ K/ [$ m' W+ P/ F9 W
  106.         /********************5 R" |2 |# j# q8 @
  107.         *   选择子偏移      *
    0 Y- T. f( ^0 _3 `8 O! v+ S
  108.         ********************/
    ' ~9 n2 ]& i" M; V1 {& g
  109.         mov        bx, 8
    0 f6 G5 r% Z9 x5 e5 @. `
  110.         mov        eax, cr00 ^* R5 ~0 d2 o  _, k5 V4 B' S* Z7 q. y
  111.         or         al, 10 K0 g) m' S: }8 Q" X2 P- y* }: S
  112.         /**********************/ N0 C% w! `. O, [) L$ W
  113.         *     进入保护模式    *
    + a, F6 y8 h. `
  114.         **********************/
    ' E  e/ \  T' ~: u% A! w
  115.         mov        cr0, eax" e' o$ k- L5 s0 a& t  @
  116.         jmp        pMod  A  m2 t7 L/ [  b
  117.     }4 n7 |/ A9 F1 r

  118. & p# F& G. \- c1 X
  119.     pMod: asm{+ S: l3 r/ A. u6 V
  120.            /************************************************************
    6 T3 h# Q& b0 n3 n3 f( d; T2 ^' F. f
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *. h0 }+ Y. r) x1 f$ B$ u2 }$ W4 V3 ^
  122.            ************************************************************/4 S5 s& r! h$ W1 Y1 \3 l
  123.         mov        fs, bx
    / a3 [* D7 ?% p& M- p4 d  i! f
  124.         mov        gs, bx
    ! F  C1 U2 a- g
  125.         and        al, 0x0FE, W8 u* b- j7 ^, W! O4 c
  126.         /******************) n& f6 W$ a/ M# C$ U4 [
  127.         * 进入实模式      *
    ! E3 V2 [# s5 C* q  _6 x5 l, ~
  128.         ******************/  ~2 l! W$ G( V) D) Y% w9 }, `% @- X
  129.         mov        cr0, eax
    " ]6 s# s9 w8 c, k1 i. A" q# x8 k
  130.         jmp        rMod3 W/ X$ {, e9 ?$ e- K
  131.        }
      b2 \0 [; P& p
  132. " l7 z! |+ W4 M. r; E
  133.     rMod: asm{3 y- p2 t5 m4 T  Y
  134.         /* ******************************************************************
    8 H- \4 C9 B: {" P/ ~, `: [
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    3 Y$ `# p: J, M) y" e6 P3 J. ~
  136.         ********************************************************************/
    2 C0 i. s( L% r9 j/ k& r) C
  137.         mov        ax, 0
    - `; G5 B( d! V' d
  138.         mov        fs, ax3 U: J$ P# C8 g' `
  139.         mov        gs, ax
    ; ~# \* {! `, C
  140.         sti  N) I+ F$ D( Z, f$ d1 J
  141.     }
    / ?" L9 s; }, J" h/ a4 e! a
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
      ~! y& K2 r. T1 l; T2 A% z, N$ G
  2. ;*    File: DOS4G.asm                                                *% r; J; ~# T9 P, ]4 _
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    , N" r9 A1 s- _: Q
  4. ;*                                                                   *
    . J9 x1 I% }- S1 T: T
  5. ;*    ========================Title===============================   *- O+ X# L6 J( a8 @4 F+ B
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    # E& G7 S( d$ @: n9 Q: A% W
  7. ;*                                                                   *% I3 B" H3 [3 t* W* z6 U, s
  8. ;*   ===========================History==========================    *
    . q( }7 m: y$ L" T
  9. ;*    author: bini                                                   *& N3 H/ n5 `5 X- j/ N/ j& T
  10. ;*      date: 2008-10-08  Frist version.                             *
      h& v# d; X' s7 q
  11. ;********************************************************************/ ( [% M' z2 A2 Q
  12. .model small) C0 u3 p3 E$ \' e: b) q9 Z" {
  13. .586p% T" D. |; |1 r' J: b' u8 h' p8 h

  14. 3 |& q2 K* [: z( Z  j& J1 g2 f
  15. DSEG  SEGMENT   USE16                 ;16位数据段% |3 P; S8 o4 m' e0 ~, w0 n

  16.   h5 d/ o" A% g# B+ {
  17. DESC            STRUC
    / V7 i5 i, A9 s
  18.         LimitL          DW      0 ;段界限(BIT0-15)- ?1 W2 E( X: {1 j! n
  19.         BaseL           DW      0 ;段基地址(BIT0-15)' p  q" g( \/ V6 B4 ~5 }( j% s# W0 z7 D
  20.         BaseM           DB      0 ;段基地址(BIT16-23)  i$ f$ r$ A  z
  21.         Attributes      DB      0 ;段属性
    ; F+ U' a2 O* d' i$ |
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    ) s, K& x4 _: w) l1 p+ {% M5 T# p8 V
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    2 I6 K" M5 Y# @- j% P; c  F+ s
  24. DESC            ENDS" @3 D- L/ J4 k
  25. " X! _; w2 [) E! n% `3 A' y/ G
  26. PDesc           STRUC
    + w1 \6 H; W3 h
  27.         Limit           DW      0 ;16位界限
    3 O* }, u9 l& F1 [7 y7 u( S
  28.         Base            DD      0 ;32位基地址
    : g# Y- A3 t$ L" l
  29. PDesc           ENDS
    ! p, a. d" ^- r2 ?8 j: q

  30. 3 y6 r! @( A! ?" m0 q
  31. GDT_def         Label   Fword
    7 v* [4 ~- V7 E! A% a- n
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    ' s7 Z$ j* n0 d9 c3 t& _( L
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    2 S* r- k6 u7 G+ t- Y3 P- X! ~( Z
  34. 6 U1 J/ k( e3 ]: v- A7 s. d
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    7 p- A9 w# R* d+ t2 H3 u, Z
  36. DSEG            ENDS                          ;数据段定义结束$ V+ M# ^$ P! A! P

  37.   x+ @# t) d2 A' s" S% m
  38. CSEG            SEGMENT USE16                 ;16位代码段6 S( H4 ?: y0 S! ?( }
  39.                 ASSUME  CS:CSEG,DS:DSEG( E- ]: Q1 M$ s) N
  40. .Startup
    4 n. s" |$ M9 A* q  E! \+ h* c* f
  41.         call      Set4gb
    7 q6 x  |  m5 H: F* ]
  42. ;1 O& L2 h( O2 C. a1 P; J* t. c
  43. ;       fs, gs即能访问4GB空间
    % c  R' O* _7 F& K1 G# k
  44. ;       write your code in here.  T2 Y3 }0 I. k3 w5 _% C
  45. ;
    " q4 d$ U( S/ V( @" B
  46.         .exit/ ^* E/ ?) m* U% W& M. {5 u, C' a
  47.         ! o3 s$ z7 O1 J* Y
  48. Set4gb          PROC      NEAR  s/ z& _7 [' F* E0 K
  49.         in        al, 92h
    ) C7 }' ~3 p# h6 O) h+ D. Q
  50.         or        al, 002
    6 j$ K* E( x! ?9 |6 r9 S
  51.         out       092h, al4 e4 u4 a( L4 E3 K: M4 `$ h) }
  52.         out       0edh, al3 K$ I% w( U. f/ H" A9 i
  53. : Y3 A% {( |1 g! |
  54.         cli
    2 f# }5 C4 L/ o* j# \
  55. 4 N  e& p9 P7 P+ X
  56. ;        mov      word ptr GDT_Addr, (2*8-1);1 p6 o# ~" H; `  N8 l
  57. ; K  `, N+ X/ A9 E. Y! D
  58.         mov       eax, ds
    + q- v5 Q' @1 R: ^6 S8 W
  59.         shl       eax, 4
    5 u1 N) w6 ~9 `) S6 d: ^, [0 b0 w
  60.         xor       ebx, ebx" M- _* k2 w" F- ~4 V1 D3 b
  61.         mov       bx, offset GDT_def0 B; z( S6 v9 \5 t
  62.         add       eax, ebx
    ; X- H5 u' P$ a9 C6 m, ]  F. a) E
  63.         mov       dword ptr GDT_Addr.Base, eax! b( d3 W6 l7 u& L1 R* U9 \
  64.         lgdt      fword ptr GDT_Addr
    4 o6 p' A/ b* K

  65. & L( N% u# j/ p& b, S  x
  66.         mov       bx, 8! n" F2 @, o) v$ l* J
  67.         mov       eax, cr0
    . W4 F6 R. K1 V9 w9 Y6 R5 D
  68.         or        al, 1
    + Y9 I! e. @  W4 E* H9 A
  69.         mov       cr0, eax4 b3 I0 |& Q% y' v3 k0 @
  70. + Y: C5 Q0 x; K$ ^+ A
  71.         jmp       pMod
    ; M; x& U5 e) |) n3 \( O& _
  72.     pMod:
    8 K/ v- O+ J" ~1 _

  73. $ n8 `/ ^4 d* y+ ]0 t2 ^
  74.         mov       fs, bx
    $ W% v( U6 }* ?' A% v
  75.         mov       gs, bx2 [/ d( m# G! C8 }, ^
  76.         and       al, 0FEh8 O! O+ k( X# V
  77.         mov       cr0, eax* o; X9 q( o6 f
  78.         ! a1 a/ N% i4 s: w% P- V2 b4 {
  79.         jmp       rMod
    7 ^3 |5 U. m+ k* d& c' |3 i/ z+ p
  80.     rMod:2 ~" u0 Y  b8 F( k+ Z  `

  81. % r5 t* i; m0 U, s3 H1 T% ^
  82.         mov       ax, 0
    1 v" j0 N; g  O
  83.         mov       fs, ax
    & E8 c3 @6 Q2 z' e7 g
  84.         mov       gs, ax
    - U* ?/ T9 n4 ^9 ~
  85.         # p, W+ [2 l; t  x4 O4 @0 ?$ r+ F
  86.         ; 在2M的位置测试写一下数据
    ) _" e" @7 \6 L
  87.         mov       esi, 200000h8 l$ S" Y' n2 l; E) @
  88.         mov       dword ptr fs:[esi], 055aa55aah5 U- x; @4 t$ t5 |' O/ o
  89.         ; 用RU去看看200000h的位置是否是此数据....4 o1 ]% l8 E1 k0 b; i' v$ ]8 b1 q
  90.   }8 f1 i6 m& u" I2 ?+ e
  91.         sti! q  ?; r# o! x* T# f
  92.         ret  n+ K/ \' `8 H: n3 a
  93. Set4gb  ENDP7 g$ G  e# q% l8 ^
  94.       
    " s1 d; P1 A) c4 I3 |' F) u7 ]
  95. CSEG           ENDS                              ;代码段定义结束
    2 a" D5 g; B4 o8 j4 P
  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- N4 I" O9 d+ {4 d/ B9 T
: O" j* t! |2 J+ {
option->compiler->code generation中的option选中, [X] compile via assembler& n! S* E+ c- D$ B3 c( A$ d

/ i7 r, P& v) t, y3 y[ 本帖最后由 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;5 b% ?) \- J- `( Z" J; u$ z1 m! @
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
% @% Z: x; P9 I
/ r# O& H' [0 S! V* }3 s1 H& pGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
/ H1 R; L  ^  d 替换如下,
3 ]! g* X2 e) x" j& c- LNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
! }, d/ Q( D/ s* zData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>% `( J- o/ R/ P; h) g- s* R5 G
& x* f6 |6 ?# \  k# k! r
GDT_Addr        PDesc   <$-GDT_def-1, >
6 E3 L+ T, p! B这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 ) N: h1 Z! o& @+ ]% t4 I
option->compiler->advanced code generation中的instruction set选 80386
$ b6 e  j2 @+ i9 }1 Y. i: t) i4 P& U  P7 T  b
option->compiler->code generation中的option选中, [X] compile via assembler

' P: F% Y7 L5 C4 u- E0 l2 e4 ?. p   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
; H$ C* t+ [" z* G  n
5 a% Y3 i! W& ^9 E8 ~; m, k   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

# M9 d1 x# M6 B/ l. q% C( Q3 }+ A  Y; {% x2 D3 t$ {0 u3 _' Z
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;9 c, \5 r$ ~! Z9 f9 \2 }
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 08:55 , Processed in 0.197762 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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