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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。5 u+ d$ B( D/ w0 h" V
$ v  i1 ?" u: f, r5 y( W
这是C的
  1. /********************************************************************6 ]9 f4 f3 E6 ~( C. t
  2. *    File: DOS4G.H                                                  *" S6 e0 s3 c& T
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    1 I1 u) S, ~, }& I2 x$ Q' z% K& J8 x
  4. *                                                                   *
    ) d! L+ A9 |  ~7 h; w
  5. *    ========================Title===============================   *
    # k, e# h# N% s
  6. *        这个函数是让系统进入DOS 4G模式                             */ Q  |- `! g4 a. _" L
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *8 i8 O) t# ]. S. n* Z
  8. *                                                                   *6 V5 [( _( ]& b1 L% Y8 Q
  9. *       使用: openA20(); set4gb();                                  *
    ! l/ `) P- e4 X% T9 K
  10. *                                                                   *8 V. I% D' s, J. F: x# c; o: L
  11. *   ===========================History==========================    *  r3 b1 M( V- p
  12. *    author: bini                                                   *
    % b9 q  [: x; R; q& Y3 @( X) m
  13. *      date: 2004-11-30  Frist version.                             *
      Y+ x7 B9 ]/ d
  14. ********************************************************************/
    ' m" B8 O2 |! a% W

  15. * a& z; Y0 }% q2 H' r3 N
  16. #include <conio.h>3 w* T7 W$ ^5 M! A- Y
  17. #pragma inline
    6 J7 z, b; n$ e! `1 ^

  18. 8 \: ~7 o4 z" O' C0 I" j
  19. /***********************************************0 J: R5 ~" l! c
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *# i- {! Y. `: Q2 P! y9 z9 o
  21. *    第二个为一个数据段,没有代码段。           *9 A  G8 U; _1 {9 M5 `
  22. ***********************************************/
    % d+ N# L5 f- c
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/1 U( k4 R' _  J5 P. L
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, " L/ h( o" z. @. {& h. o. y% I% r  L
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF % f  P- B/ t3 i: A2 q
  26.                                       */
    * z7 G* E7 Q: y1 [4 t! l
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    + C# m4 h% b: w3 v2 ~1 k
  28.                                          最高字节为 base( bit 24~31 )
    . u' x2 `. K' R# S' J; |
  29.                                          ' u. X2 C. N. o7 E+ k& x5 O
  30.                                          属性Attrib = 0x8F92) X9 k% L+ q; T8 I( u
  31.                                          
    , Q* X6 o/ ~* C, t' x
  32.                                              属性位Hibyte低四位为
    ; `! V" ~) H) m1 i" h6 V
  33.                                                  Limit( 16~19 )=F; K0 U0 i) a- M; ^7 K
  34.                                              属性位Hibyte bit7 为粒度2 d  Q5 l: f* n4 A
  35.                                                  (值1=4KB粒度)# u7 |# r: H/ [
  36.                                                  8F & 0x80 = 1
    9 n/ H9 r- k3 M, y, ]
  37.                                                  : n; r; L) c1 e2 F4 J$ ]5 j4 H# i* O
  38.                                              属性位Lowbyte低四位为段类型,值=29 o1 ~' O" u% S6 k, R
  39.                                                  表示为可读/写段
    ( e6 e) m9 t" n) u; K8 V9 l/ P
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    " t% l. D. x) P9 |5 F
  41.                                                  描述符对地址转换是有效的。
    1 Q0 }: }' S4 {9 ~
  42.                                                  bit0=1表示为:
    8 r8 C1 Z, S3 V+ E4 }- k
  43.                                                  系统段描述符。而不是门描述符。3 k9 m& j, P' i' \" u+ h
  44.                                              4 `% m% ]6 g! n/ R+ e; X
  45.                                          */
    & W" m; r& z/ F: ^* a% B9 ]

  46. , [: c+ G6 u  E% |8 h* k
  47. /****************************************5 l! U+ @, Z2 s2 Z5 u5 Q; Y$ j
  48. *    GDTR寄存器, 48bit=6bytes            *2 w0 L8 w7 h( W* g* P) C
  49. *    +-------------------------------+   *
    . r! @1 a1 W. q) w
  50. *    |   32bit基地址       |16bit界限|   *
    9 u' d9 g: V, D, ?
  51. *    +-------------------------------+   *% `6 j7 a( [0 ]' h
  52. ****************************************/' m" q# E9 I' m" k% W4 Y
  53. unsigned char GDT_Addr[6]={0};
    5 F9 }  O9 A1 o, p& D8 S

  54. ) I! U2 N3 U+ q' ?* Y6 S
  55. /****************4 j- K3 F. }) k# j$ a9 U
  56. *    打开A20门    *
    3 k" T" t8 P- c; b
  57. ****************/( i& `  j# i) g  n3 p  ^: n
  58. void openA20(void)+ y* x9 D" U" o5 k6 u
  59. {) \' Y, X- l7 C  ~9 ^$ Z! r
  60.     asm{
    4 W+ O2 n6 M! ^5 N# S+ D
  61.         pusha
    & `2 d2 x4 m) M% B. [
  62.         in         al, 92H8 y5 x, z5 h; s5 A4 ?
  63.         or         al, 0x02. d; p( P6 b& m
  64.         out        0x92, al
    0 e/ v' Z0 x/ P* M7 C4 |
  65.         out        0xed, al
    " z6 p: s/ }- w6 T. @
  66.         popa
    ; ^  w: X7 Q6 @$ p# J' X2 p
  67.     }# Y0 c# _, E9 T! S; J
  68. }* o: b" n" |3 U
  69. - G% J& _, C) _
  70. /***********************************************& U+ A9 J3 u. ~$ |5 X& e& ]' p9 E
  71. *    函数功能:进入DOS4G                       *
    3 G5 B( e* K" k! S  h
  72. *    ====================                      *) r2 H' D* H+ L$ D6 E/ z5 j
  73. *                                              *7 l3 v9 T( {  k$ d; s5 y' p
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    5 u6 F% H1 N4 e7 i  r* H6 B
  75. *   如:                                       *4 E3 x: b3 C, @+ K; m& U
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    / d. E- J1 l6 E* }1 h3 r
  77. *       表示为 2个GTD                          *
    ' z0 u5 E, k  W: G$ T( @+ c5 m
  78. *                                              *
    ' q( _( C- b+ {% f: l
  79. *    选择子为所在描述符内的字节偏移。          *
    * y# m; a1 a: ?5 [: I0 O
  80. *                                              *
    0 q4 w) P* {$ H' d8 K
  81. ***********************************************/4 I. C( p9 l5 A% j% `6 S! c; W
  82. void set4gb(void): c# e5 W; k/ L. R
  83. {
    0 i1 m/ B8 T9 b) q6 o/ L" i2 o
  84.     asm{, q7 c7 C5 }- n+ S
  85.         cli* l- X7 J( q$ l4 ^! {
  86.         /****************************************8 M: q5 z% r+ x  `1 Z7 v
  87.         *    GDTR寄存器                          *
    * Y3 O  Q& H' Z( c$ _1 T/ ^9 |
  88.         *    +-------------------------------+   *
    1 F- W7 W; p9 x( A- v5 |
  89.         *    |   32bit基地址       |16bit界限|   *$ z* R5 p) b, q# ^( h
  90.         *    +-------------------------------+   *' ~2 t* D& b: Q7 s2 [- g$ Z# F
  91.         *****************************************/6 E+ J3 j- q& Z4 r1 i; G: o% {
  92.         /*********************- }: d. p. l# ~
  93.         *        得出段界限       *
    ! h( a4 i1 x, F9 Q' y9 m/ R
  94.         *********************/
      \6 Z. x$ I& j8 L9 H: V. c
  95.         mov        word ptr GDT_Addr[0], (2*8-1);& }* i0 O1 u( B7 y1 v" w
  96.         /********************************************
    ) w. [* S/ i$ u' [, {! M9 Y+ |
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    & l3 V- g" I! y! q8 t9 A' o. Q
  98.         ********************************************/
    - z& k1 `9 |1 b( d  p
  99.         mov        eax, ds& w! F# E0 p( i9 o0 n" U
  100.         shl        eax, 4
    , A' z1 s3 \8 \" N
  101.         xor        ebx, ebx
    ( y& ~" u# _8 D- I' ^
  102.         mov        bx, offset GDT_def
    * m/ t8 A& [0 d
  103.         add        eax, ebx
    + t0 Q/ j9 l5 m: m- B+ w7 Z
  104.         mov        dword ptr GDT_Addr[2], eax$ M: {: u; G! J2 J7 }, e% x
  105.         lgdt       fword ptr GDT_Addr
    : c5 d: a% t4 x0 d- z6 K
  106.         /********************% d5 D1 \. L+ g' r
  107.         *   选择子偏移      *
    ' {- W0 s' e$ t5 ]7 p/ L) l
  108.         ********************/
    0 p0 S2 ~" p, H! O( l, d/ N5 ^) I/ N. C
  109.         mov        bx, 8
    1 @: s# `; ]. Z) S1 I# g( \
  110.         mov        eax, cr08 y3 J9 c" k( j3 V9 N
  111.         or         al, 16 W/ d) j6 B3 l2 N" W7 s0 o- E( t! u
  112.         /**********************
    5 M9 F! @- O- ?0 _$ I
  113.         *     进入保护模式    *
    " Z7 Q5 J& x% V* G5 j8 n, N; t
  114.         **********************/- N5 C( q4 |" c1 k
  115.         mov        cr0, eax6 W, Q" Z2 h" Y3 s* L* E
  116.         jmp        pMod
    0 c6 Z; |4 f8 [, }8 R
  117.     }9 B. k" v7 ^0 s, u& N) b# H

  118. , K* Y7 p# U  c- t' H
  119.     pMod: asm{) v" u5 y, _, p
  120.            /************************************************************" q! G! {+ h) M/ H
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    3 I6 }) b& }9 j. P- h
  122.            ************************************************************/" g: ?, P: I' i' W# G* u5 P$ B
  123.         mov        fs, bx' e/ H2 G$ o( b% N& f
  124.         mov        gs, bx* N. z+ v' J  w! D
  125.         and        al, 0x0FE
    ; ^  u3 H* Q* s5 l
  126.         /******************
    . a3 u) l0 m! t' ]( ?+ L
  127.         * 进入实模式      */ G# t$ q( ?- C# ]
  128.         ******************/  u' T' s. t9 v5 i- }
  129.         mov        cr0, eax2 h1 i3 a' S8 R
  130.         jmp        rMod& B: `6 o/ T. e$ r
  131.        }* R1 D8 A: y+ \- [$ }
  132. # T$ w9 k# x( ?# J9 }4 L
  133.     rMod: asm{
    - H: J  L' t4 F( F
  134.         /* ******************************************************************
    * L" y$ G' W, w* f
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    : F8 v' [5 o7 @
  136.         ********************************************************************/
    , i+ R5 ?; [5 |6 M9 ~: y
  137.         mov        ax, 03 F- z9 j3 w7 }) M5 v- z
  138.         mov        fs, ax. w3 x+ w9 P( }7 I& s
  139.         mov        gs, ax
    : E4 Q. ~. Z: H5 }
  140.         sti
    2 H) _& b6 S! W/ |
  141.     }9 X9 R9 \( f- H- ?$ e% Z* V
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    $ o2 s* H3 Z7 t8 L2 I; B( h& \) N
  2. ;*    File: DOS4G.asm                                                *& f* R+ h5 ?  }
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    8 M( `6 x# ^' M( a, u, c
  4. ;*                                                                   *
    " }7 [" e# S9 o- V# n
  5. ;*    ========================Title===============================   *
    6 \9 O4 W5 z( `; M
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *6 A$ n) q9 S# z# @6 b2 @4 d
  7. ;*                                                                   *. B+ w7 m: z, G0 h* J: U8 G
  8. ;*   ===========================History==========================    *
    0 i+ x- }0 N# x8 w- l) b; B' M
  9. ;*    author: bini                                                   *
    1 D9 }5 k7 s; y# R6 j! u
  10. ;*      date: 2008-10-08  Frist version.                             *
    ' u( i9 t6 I4 N0 e  S0 H: ^
  11. ;********************************************************************/ , Q/ T5 T' C$ K6 F, r5 B2 j
  12. .model small8 l9 O! H' S4 g/ Y6 L9 x
  13. .586p) ~0 h3 p8 a; J' ^8 j% {+ w

  14. ) d% a7 d* Y+ R/ d
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    7 l2 ]* Q5 K  K4 G1 v; |
  16. - q6 I! f. W# A# C& Q+ c
  17. DESC            STRUC& q0 f" Q( O1 }6 u, _" X2 h
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    4 Z- }7 K7 s) Z+ z, C, ?+ \7 }
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    ; _5 q* d4 x# V3 ]3 M
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    8 G  J; S1 u  N! N! E, S
  21.         Attributes      DB      0 ;段属性; e+ c( Z$ k$ ?0 H2 m; `3 j
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)3 T: c. K7 k3 c; u/ r
  23.         BaseH           DB      0 ;段基地址(BIT24-31)3 j! o7 b3 s7 |# O3 U' o5 }, c' B
  24. DESC            ENDS
    % ^9 g( G% j5 L

  25. 2 O8 m% {8 A' ]2 G! J  V
  26. PDesc           STRUC8 d. q) z  N0 A$ y5 @9 p
  27.         Limit           DW      0 ;16位界限
    7 D2 ^1 r- Y+ S, t- C  c6 b7 e$ G
  28.         Base            DD      0 ;32位基地址
    7 }+ H7 [. M7 R6 e; e# Y# c
  29. PDesc           ENDS
    * @/ h" P: L5 w1 _' ]! o; o) i( l
  30. : U+ l* R4 L  ~* \
  31. GDT_def         Label   Fword
    , N8 |0 }4 `0 s
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>) y, r, m# l8 a6 P
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ( |9 ^2 E. [! _. N/ e+ q& H

  34. . J# a6 F$ C1 L3 w/ u
  35. GDT_Addr        PDesc   <$-GDT_def-1, >" Q  e' _* y" Q0 _4 o
  36. DSEG            ENDS                          ;数据段定义结束6 V* k$ b8 y* h& U# X! P& h

  37. , e  Q0 f2 n6 i4 ^% [
  38. CSEG            SEGMENT USE16                 ;16位代码段
    - n. P8 G7 |4 T/ b
  39.                 ASSUME  CS:CSEG,DS:DSEG/ l- C9 ]# f. f. L( L3 l
  40. .Startup
    6 h1 q( c2 n- q) P+ k! Y* N" `; B  J
  41.         call      Set4gb# L" i( y- I: r: ]3 w4 y' p
  42. ;& K7 v- I: P5 V5 n( {+ ^0 m5 M
  43. ;       fs, gs即能访问4GB空间' a9 Q- G5 s* b3 }/ y" ^) b+ h
  44. ;       write your code in here.
    $ D# t4 d* T- `) O3 Z* f% J
  45. ;/ K4 s- o) W* Z2 ]3 Y
  46.         .exit  z5 J3 k6 @1 F5 W' Q$ E4 {2 r
  47.         
    + V" F3 m  p" T: r/ k
  48. Set4gb          PROC      NEAR
    0 @$ z& x/ x% l  B7 v$ t
  49.         in        al, 92h
    ! Y+ O5 k3 J4 L! T: K  ?
  50.         or        al, 002
    ' s! H, H5 y3 f  F$ h9 c
  51.         out       092h, al* @! Z# f7 f: g
  52.         out       0edh, al
    2 I0 S6 A1 y3 W" f' m
  53. + l% z# i3 M2 U( F
  54.         cli2 L2 }0 L- U0 \; F" u7 U& f

  55. , b* ]; \! u5 J$ T) s# U
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    : H8 C2 Y: p8 k/ b% Q
  57. ) n& ~, X# ~; D% B2 U# u# ?. z* ?
  58.         mov       eax, ds
    5 r1 F) v; l( F6 k, U% F
  59.         shl       eax, 41 H0 q3 v2 b) z' O, L
  60.         xor       ebx, ebx, f9 Q1 i; @* E* l' l1 R
  61.         mov       bx, offset GDT_def
    7 \6 L+ Q9 n0 _+ }6 h5 X: D
  62.         add       eax, ebx! z( ]' I8 C& F" E* R) f1 F
  63.         mov       dword ptr GDT_Addr.Base, eax
    7 w0 D/ m# @+ t8 e" L5 F0 c7 J' b
  64.         lgdt      fword ptr GDT_Addr
    ' A; i! a/ ]: y, e- ]8 S

  65. & m; I1 N4 ^, z9 L, g( r$ v# `
  66.         mov       bx, 8
    ; v/ \' y8 e) c+ o0 [1 t
  67.         mov       eax, cr0% H* S+ d/ ^0 G. i
  68.         or        al, 1
    + v( Q! _. g5 U" P; F2 i
  69.         mov       cr0, eax% N! _# _# d- ]. G5 |8 A

  70. 2 ^3 n" v3 j) G! S4 n
  71.         jmp       pMod3 u/ N' k7 I7 D! S$ _
  72.     pMod:! b" b' c1 ]+ Y! X3 m% T: o$ B

  73.   M- R9 W! s/ k; E
  74.         mov       fs, bx! {. Q3 f! L; [9 F, J
  75.         mov       gs, bx
    ' b4 o3 y  f- M. O* V( E3 m5 s
  76.         and       al, 0FEh
    6 I  ^: B, \# i1 \0 U
  77.         mov       cr0, eax* M1 E" R3 V: [* m% c5 G
  78.         
    $ |# ]( k" @1 {, U( J5 y4 E% `- A
  79.         jmp       rMod
    . Z( Y; v1 U8 s- D$ e& W
  80.     rMod:7 ~" d! h5 z2 G" ?

  81. 7 u% l) y- R& [5 F% _
  82.         mov       ax, 08 }2 r3 K  G+ s5 h3 A! R
  83.         mov       fs, ax4 e2 I1 N+ n/ u. ^% ~+ y, p; o
  84.         mov       gs, ax8 ~- H* T' b; a% i- b% J. p
  85.         4 {+ Z. _4 H; _9 L) H+ ?6 h
  86.         ; 在2M的位置测试写一下数据
    0 ^2 Q; B) W' k; U  [
  87.         mov       esi, 200000h
    % a5 a& }8 {% F3 V+ W, c- ~
  88.         mov       dword ptr fs:[esi], 055aa55aah; S+ S; N9 w- \  R* A
  89.         ; 用RU去看看200000h的位置是否是此数据....1 A' ^  Q' @: M; @; w( c. D2 O
  90. ( ], |0 ?! L$ S8 R, f" R
  91.         sti& }' P  \( R, K% F9 j9 V
  92.         ret
    0 C& I) w6 N) Q; h/ T
  93. Set4gb  ENDP- h7 V2 r# s5 F% j
  94.        1 q' b. v2 R1 [+ y, |) D0 y8 F
  95. CSEG           ENDS                              ;代码段定义结束- n. ]6 U) G- ^$ e" d
  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! f; k0 B' N( {+ J  I
( w$ e' g$ M5 b
option->compiler->code generation中的option选中, [X] compile via assembler
) f- A8 Y. n- `
& x5 p3 [7 k) c& 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;9 w* Q6 K0 R: D# f* O$ L
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;$ C% E7 {7 g6 t% T8 O7 T" o+ [
* ]1 Y+ f5 {2 U; z6 y- J2 P
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;3 U# o, c0 y: }6 w8 z- x
替换如下,
+ X) H- g7 j* R- u3 Y# RNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
* P  W, U) s. Y& ~' V9 s! cData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
$ f( \* }: Y9 d( x- E$ g0 l: X9 U  l6 M- }9 S* {7 M
GDT_Addr        PDesc   <$-GDT_def-1, >
& w2 D& q* V- V0 A8 D+ P这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 & i, v, j3 ]# N" A& k
option->compiler->advanced code generation中的instruction set选 80386+ p/ N; p! V3 O) Y( E% w: P
1 K2 |) K2 _4 B! M! f
option->compiler->code generation中的option选中, [X] compile via assembler
/ J/ j! |+ Y5 j- {
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
5 c2 S0 _' |" Z2 q, z* l# v/ I% p5 ]
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
: r/ R) G2 u4 r

7 M3 M" c9 k9 G2 j8 f我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;
: U" O6 _. M* j& W0 |9 B  ?还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-19 21:53 , Processed in 0.216928 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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