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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。$ P& N! l! t  O! r4 K  h& n
9 n& U8 n+ j& e! z4 K/ E
这是C的
  1. /********************************************************************
    + W2 c2 h* T/ O0 A
  2. *    File: DOS4G.H                                                  *7 R2 D4 n; k  s+ U
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *) S  B  e" u. q& i
  4. *                                                                   *  n3 |; s( _0 B0 P6 F& \
  5. *    ========================Title===============================   *
    ! `6 e# E- o  ?* |/ R
  6. *        这个函数是让系统进入DOS 4G模式                             *" A! P3 L+ V- N: k: ~
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    & C; N, l" B! b% O
  8. *                                                                   *+ b# z8 A* I2 k( F  W2 q
  9. *       使用: openA20(); set4gb();                                  *- D+ z! X  M+ b7 i4 n3 u
  10. *                                                                   *% e  d, a" d+ r5 b% X6 f
  11. *   ===========================History==========================    *
    1 u% B# U+ [& {
  12. *    author: bini                                                   *, O6 b8 {9 _' s) j8 y' F
  13. *      date: 2004-11-30  Frist version.                             *
    & h1 \+ O, D" p$ A' s' ]( F+ Q
  14. ********************************************************************/
    , h  j; ]) m$ s1 \$ ^7 H$ A( Z* v

  15. % l- w9 I& K# v; Q* m
  16. #include <conio.h>
    6 }  a' s) D( _: j
  17. #pragma inline4 s: A0 F7 [9 Q1 ?6 y! r0 v

  18. 0 h; x9 |: V1 y9 q  g
  19. /***********************************************) ^. j) O- D# K4 L. n
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *3 Z# ?6 w5 {+ I7 y, Y
  21. *    第二个为一个数据段,没有代码段。           *8 r# ^1 H5 B! N9 }& ?
  22. ***********************************************/. I! \) e: i4 y9 e% ]2 {( k1 e
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/' [+ J( |$ M6 Y8 v& E
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, - h: v& y' m( |6 l+ s
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    3 Z0 T! @/ D" c2 a
  26.                                       *// k* u: Z4 E+ y9 [# `9 j
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 ), |& D# b& C  k: d9 w
  28.                                          最高字节为 base( bit 24~31 )
    ( _1 p) i7 j( L
  29.                                          
    , h, w) f1 g/ s! x* U8 i6 @
  30.                                          属性Attrib = 0x8F92
    3 h, W0 x4 ~3 T+ |: h
  31.                                          6 Q* A! @( T# F% w5 B! Y
  32.                                              属性位Hibyte低四位为 $ M* d  d! u/ \3 U# l' M& [
  33.                                                  Limit( 16~19 )=F+ s! d' P7 C( o7 ]0 O: z/ {' F
  34.                                              属性位Hibyte bit7 为粒度
    - U  G5 n- Q* b, \; r: [) h
  35.                                                  (值1=4KB粒度)
    ! g7 }2 y) S* _. G( O6 t
  36.                                                  8F & 0x80 = 1/ o: ~( _( y9 d+ d$ M
  37.                                                 
    7 ~) u$ _! p0 e) \8 c+ ~5 i# Y1 O3 @9 g
  38.                                              属性位Lowbyte低四位为段类型,值=2
    ) f+ |: ~. B- W+ J( p% u
  39.                                                  表示为可读/写段
    1 r" y, Y* h  a# k. @, x
  40.                                              属性位Hibyte高四位=9,bit3=1表示:$ I  e5 \# c" s+ P4 c! z
  41.                                                  描述符对地址转换是有效的。- B* X) V& R% G6 ~  J% _2 N" ?& y# d
  42.                                                  bit0=1表示为:8 R* d5 K, F5 I
  43.                                                  系统段描述符。而不是门描述符。- k# M! n) V* a+ D2 A3 i& E! H
  44.                                              
    " M5 }5 V" R  m, z# L
  45.                                          */
      C+ R! M3 t4 E. l1 h, v; r) T

  46. / a; h% }) w8 w- ~5 w8 n
  47. /****************************************& l: B4 k( q& `/ L
  48. *    GDTR寄存器, 48bit=6bytes            *
    8 ]# ]3 {" P; ]% B8 q( g. _
  49. *    +-------------------------------+   *
    , ~0 y/ X  s; O  a
  50. *    |   32bit基地址       |16bit界限|   *" ]5 w% L* l7 k# W) w. O
  51. *    +-------------------------------+   *
    3 F' I. Q% j& _2 R& @- L" T& D& e
  52. ****************************************/, O# T- ^( P0 s( y5 B& O8 g8 l
  53. unsigned char GDT_Addr[6]={0};
    ' m5 d2 O( N" q9 l
  54. 5 N, i1 _3 d" A+ {2 A% {6 \. p* P
  55. /****************
    + [, K) ~( y) l( |7 W) l6 v
  56. *    打开A20门    *
    - i) @( }1 w* u6 T4 i. h
  57. ****************/
    + L/ a0 a# x6 W7 t0 M
  58. void openA20(void)
    / T( _/ {& v2 q2 J3 b1 P
  59. {. s8 y3 V! C' \2 d; L+ [
  60.     asm{
    - A2 H2 w+ [# P  ]9 f
  61.         pusha  H3 D1 v, l/ Q, C
  62.         in         al, 92H9 j# f) @+ d3 V* `0 P' a
  63.         or         al, 0x02
    ' [; q( r4 j# l* Z, g9 q
  64.         out        0x92, al
    $ V/ F8 e1 ]& Z8 k- `, ~
  65.         out        0xed, al# W( V* a: X0 T& C; k" b' e7 X
  66.         popa
    3 t3 Q5 {1 _5 g! v& y
  67.     }- I4 D( b" k8 l+ m9 U4 o. e
  68. }/ J7 q  s0 C: \; f+ v+ M
  69. & m6 H7 j( H. O. E1 w' S- U6 f4 y  y
  70. /***********************************************( R3 p; H; J$ b# q- O! M' O! O2 A5 ^
  71. *    函数功能:进入DOS4G                       *3 z$ T. H: L; C! A
  72. *    ====================                      *  s7 h, r4 d+ F- y5 f, U6 n
  73. *                                              *
    , F' e' m8 \; r. C) u
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *8 p7 J6 ?  f' W* Y
  75. *   如:                                       *& I% g! Q1 x5 `# M% m
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    5 F0 o: X6 E5 ~* I6 q1 n
  77. *       表示为 2个GTD                          *) g, z2 q  [5 g
  78. *                                              *
    + t$ s, g" ~2 f/ c% D7 {
  79. *    选择子为所在描述符内的字节偏移。          *- K' Y# _6 D! C) P! p; r5 f: v
  80. *                                              *5 _% A% F5 B% |9 b. @
  81. ***********************************************/. G$ L/ [# m  q/ Z5 O  {
  82. void set4gb(void)
    ) J4 t2 _; q1 e/ K1 ^
  83. {
    2 B: K, w/ I: V
  84.     asm{; p$ T1 y& c( ~, D! p% H
  85.         cli2 m! Z% q) u4 h  v
  86.         /****************************************
    0 S5 ?% h4 e) T' V% w
  87.         *    GDTR寄存器                          *7 h% O; H. f- d6 c8 S
  88.         *    +-------------------------------+   *
    : F0 ^" x) h  `6 w0 W4 E3 j# Z: o# m, }
  89.         *    |   32bit基地址       |16bit界限|   *
    $ g2 T! E3 _% ?) t; G" q( ~
  90.         *    +-------------------------------+   *
    ! H: q; F1 l: ?. l* l, P
  91.         *****************************************/+ r0 s# G' g' z
  92.         /*********************
    9 M5 p5 t9 a- ?% Q5 B3 N
  93.         *        得出段界限       *
    , i- M. ^6 K  a, |7 B) j
  94.         *********************/
    9 D+ f6 |* y" P7 B
  95.         mov        word ptr GDT_Addr[0], (2*8-1);$ a' {. U9 y& P' f7 Y& g0 _
  96.         /********************************************
    , r- P8 [9 V9 E0 C
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    " b/ U) K) ]  [& W8 J
  98.         ********************************************/
    % [2 t0 g1 `: X* d! M( V, Z
  99.         mov        eax, ds
    5 U- q# E0 E4 t
  100.         shl        eax, 4
    0 C8 o) S+ e3 W" e) N% o1 l0 R
  101.         xor        ebx, ebx
    8 B. y0 N9 ^) P$ B
  102.         mov        bx, offset GDT_def
      a) a+ }: t0 W8 h( a) G7 Y
  103.         add        eax, ebx3 Z7 F2 k& }; I' g4 V8 M  h  r
  104.         mov        dword ptr GDT_Addr[2], eax9 j0 D9 Y" ]- p, ^. _- C6 G2 n
  105.         lgdt       fword ptr GDT_Addr$ d- Q2 X7 ?/ G0 f8 `6 z$ u, W
  106.         /********************
    ( x1 @  o1 i/ c! a3 h0 [4 q  [
  107.         *   选择子偏移      *
    9 C) |' k# T& ^+ {+ F: a& z+ K3 H, N& Y
  108.         ********************/
    ( t9 ~; x+ I4 c$ q
  109.         mov        bx, 8- @! Z$ c( c! X* J
  110.         mov        eax, cr0( W  o8 j# P7 L& G: y8 D
  111.         or         al, 1
      R2 ~% }' n  E6 }
  112.         /**********************
    * a% y  `3 `% _1 e( |
  113.         *     进入保护模式    *$ F$ h* T  m& N$ A+ |3 E& `
  114.         **********************/
    2 J0 o9 ~$ k4 \$ ^/ u! |% {/ T2 X
  115.         mov        cr0, eax! x+ K4 E' @- u* L6 h; V. \
  116.         jmp        pMod- _0 l2 j. Y9 r6 X! Z& D$ b
  117.     }
    . Q% u. p0 u% X/ K1 d9 a# ^

  118. $ X! l: m- w/ E7 j: @" G/ _3 k
  119.     pMod: asm{: m* w" q  Q- G; {0 g: s
  120.            /************************************************************
    / T  T: y. c0 w- ]/ T1 _
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    " a( R2 Y. s4 G% c* b" f
  122.            ************************************************************/) ]: m% {) V6 `1 e$ |" M
  123.         mov        fs, bx# s% y6 {( `) w* W) N: Q" F
  124.         mov        gs, bx" {9 z6 c& `0 o# U; O
  125.         and        al, 0x0FE+ J5 _5 o3 V, _8 t
  126.         /******************2 N; Z1 ~& j( b
  127.         * 进入实模式      *
    2 j0 P7 N2 X( S9 E
  128.         ******************/4 U! F$ |9 K6 l% E
  129.         mov        cr0, eax
    + S1 M$ R$ ~8 X
  130.         jmp        rMod
    : s+ S. x% O/ Q# H: O, E- T
  131.        }
    7 L% `# Z( Y: Q' f/ a( x. t
  132. $ a5 t( `- u  @8 D1 i( f6 w& U; p
  133.     rMod: asm{# u3 L$ E" k, |
  134.         /* ******************************************************************' R9 Z( S+ L! h3 i' h: W* Z
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *1 i+ z3 @/ `9 [' Z2 Y
  136.         ********************************************************************/
    - B! n3 \9 k' J7 U' f
  137.         mov        ax, 0
    ; A) Q1 X5 [, b1 K0 M2 y: O
  138.         mov        fs, ax0 y( y- N. M% \* z9 J
  139.         mov        gs, ax
    2 R# S2 b" M0 c) ~
  140.         sti  e. h: p5 ?9 j7 O# `3 F5 b/ o
  141.     }6 k, v# F3 t+ e6 h/ c, m5 S( W
  142. }
复制代码
这是asm的
  1. ;/********************************************************************. A" X3 R& ]% S- J8 u' S) P: B; ^) z& v
  2. ;*    File: DOS4G.asm                                                *7 \8 v! r+ A+ j' V! V+ c$ z
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    4 O$ W( `" P4 x" s- H
  4. ;*                                                                   *( e6 g$ u% t" \
  5. ;*    ========================Title===============================   *
    0 }: J2 P' O) L3 @; a
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    " @6 t' w) N9 J# V' e
  7. ;*                                                                   *
    ) x" r& d% H5 [$ n! x$ h  ~- ?# a
  8. ;*   ===========================History==========================    *0 }+ H9 v. g7 ~) c  J. w5 d0 |
  9. ;*    author: bini                                                   *
    0 j$ o8 {2 W9 U1 C. }1 K. q
  10. ;*      date: 2008-10-08  Frist version.                             *
    5 J7 ~3 m1 l( Y: _- e' Q2 {# ]
  11. ;********************************************************************/
    ( Q# C" L' h/ B
  12. .model small
      h5 o' L/ S" J
  13. .586p  a$ N( T) V( N8 |, e& g
  14. 0 \" {" x2 a$ ]( R9 h
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    2 I6 I! p1 V- _
  16. 9 m- a$ N( H+ m: Y8 W6 D3 y
  17. DESC            STRUC
    2 {7 w# s- U9 w; M% z& G
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    ! q9 Y: D' e: O9 Q# L7 x
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    / k  U7 l2 u- Q4 I' @( h6 r
  20.         BaseM           DB      0 ;段基地址(BIT16-23)! \% M- ^/ b1 o5 A) T! m
  21.         Attributes      DB      0 ;段属性
    8 M) e3 Y6 `' p$ B  w5 s
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)+ m5 |- k! G3 E2 i) J5 k
  23.         BaseH           DB      0 ;段基地址(BIT24-31), X8 R; y" A, a) ~6 ~
  24. DESC            ENDS
    9 P/ ?, t7 V1 r. k0 L0 ^& Y# K

  25. ( p2 X& W( P# D) Y1 `8 J1 n
  26. PDesc           STRUC6 O+ D4 [% P; e- N/ J
  27.         Limit           DW      0 ;16位界限! ^9 \* e( v& N3 ^7 a
  28.         Base            DD      0 ;32位基地址& c, p; w% q6 P  ?4 [) M/ V
  29. PDesc           ENDS& F0 A: ]" v' ~" E
  30. ! U5 r  Y+ j# r6 j6 O' j" E
  31. GDT_def         Label   Fword) _% @6 ^. U% u+ U% ?8 i
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    $ S% R, r) f5 q( F4 e
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>  ?4 y& _( \: J. a
  34. ( X% u" |; `6 m
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    4 l/ w" t0 E# v% F3 F( _* s
  36. DSEG            ENDS                          ;数据段定义结束) d. Z- H: a! f" n4 g

  37. ; d& |( b, d- F* K
  38. CSEG            SEGMENT USE16                 ;16位代码段
    + w& h; |9 b- p- ^5 p6 S; X# f
  39.                 ASSUME  CS:CSEG,DS:DSEG6 V% |/ \+ M2 k, H6 K6 f, k
  40. .Startup
    & @! P1 E; b5 V: w: s, Y, o! d
  41.         call      Set4gb
    0 b/ W3 I8 t1 c* b& P' D
  42. ;
    4 _! X" _3 D5 T. T7 t& b# V( K; c: A
  43. ;       fs, gs即能访问4GB空间* w, G2 K( f; u5 A2 J: Z0 m
  44. ;       write your code in here.0 C# q3 w  G7 A: t5 F/ X- }" Q2 y
  45. ;
    5 D& V7 z+ ^4 v
  46.         .exit
    8 I% k/ }( V3 h$ }$ G9 a( ]
  47.         7 H9 v5 b" c* z5 G# r
  48. Set4gb          PROC      NEAR
    4 W0 \. m& @% Z5 f( X
  49.         in        al, 92h
    1 F% y5 G& y0 l
  50.         or        al, 002' ]% J# b5 C: S; r4 X% F
  51.         out       092h, al
    ! w) i# X: i1 `% I. _" o! j& J
  52.         out       0edh, al7 t2 W8 L5 s! y

  53. 5 c- p& m1 s6 v
  54.         cli
    ! e. v$ d" u- A

  55. ' d4 f, s* h. m# P0 ^
  56. ;        mov      word ptr GDT_Addr, (2*8-1);" y( z- W" O* v

  57. * N, b, A, g( S& ~- H5 U
  58.         mov       eax, ds
    1 q/ k+ s; w5 i* p/ N) Z
  59.         shl       eax, 4
    4 T/ i. b9 g$ F# }" d' c
  60.         xor       ebx, ebx
    ) L8 C7 l1 n" l; E$ w$ c
  61.         mov       bx, offset GDT_def
    : n% v9 E  I* }7 P
  62.         add       eax, ebx8 w2 R4 c$ P( h3 @
  63.         mov       dword ptr GDT_Addr.Base, eax  {! h  y( v  D# m) M" S; |1 B
  64.         lgdt      fword ptr GDT_Addr  c$ w% e& l8 |6 H! U0 K

  65. 0 W; p$ `9 c" e* I# \7 m
  66.         mov       bx, 8- T1 k# r* \' L! _# c  f
  67.         mov       eax, cr0+ v/ V1 }& v% y
  68.         or        al, 15 Z+ p0 i# \* B0 z/ Y" l
  69.         mov       cr0, eax
    9 i5 q) @! Q2 Q6 B8 |- w+ N
  70. : B3 e! b5 E8 n5 r
  71.         jmp       pMod
    $ j; C! g' W: U7 e, j2 ^4 k* S
  72.     pMod:
    7 d' ~4 y: K+ v2 q

  73.   N$ l! @! c2 k5 T. ?+ I& b, @
  74.         mov       fs, bx" y. Y: W8 A5 O/ a
  75.         mov       gs, bx
    7 p  h: B% b/ H
  76.         and       al, 0FEh
    2 J8 H( R  r2 f9 t" }
  77.         mov       cr0, eax; }$ ~8 ]  L% z2 b$ h% J
  78.         ! f8 s1 {+ U3 Q9 f) o; W" H
  79.         jmp       rMod
    , Q3 p' u0 X; k3 A( w
  80.     rMod:
    . l& N  u  \, l$ I

  81. & G) |3 V6 M5 T' P. K
  82.         mov       ax, 0$ l5 I& V6 T/ d& q  Y4 R& ?
  83.         mov       fs, ax
    2 ?' Q7 Y( K  R: u4 c
  84.         mov       gs, ax
    2 @0 S/ M0 D* k8 p1 X' Z3 F( X
  85.         " g  P1 H- |3 J4 X
  86.         ; 在2M的位置测试写一下数据; y* {% W6 J) X$ c7 t) G
  87.         mov       esi, 200000h5 }  o. o% U! X' d+ a. k
  88.         mov       dword ptr fs:[esi], 055aa55aah* ^/ T' {% ^; {- Q8 t
  89.         ; 用RU去看看200000h的位置是否是此数据....; g" Y; r( Y; c5 J

  90. - S" X5 m6 w8 G0 ^
  91.         sti4 {( ?% S/ U* U( N
  92.         ret
    + {7 b8 @' h! v' l' |- M
  93. Set4gb  ENDP
    - B* _9 o8 M/ u3 R4 {* t. [
  94.       
    ! h% N0 J! k4 L9 E
  95. CSEG           ENDS                              ;代码段定义结束
    ( v2 p- C8 U% Y. M/ D4 l  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% Q9 l% X6 @6 E) K! e5 ?
- ]* }. ]$ m& y1 P& o* k* x
option->compiler->code generation中的option选中, [X] compile via assembler
7 L+ c! |7 g. v8 W' J9 @
, L4 O6 a) B. M% 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;7 l$ ?, Q& v' a# d" h, b" m
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;# x. ]( h7 M3 j/ s3 d# F# w
0 j( G, l/ s# Z  b- R
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;4 F( c- j4 |; X% z3 d# x& p* B$ ?
替换如下,
/ h- i! X! D7 x- K9 H% ^Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>8 t$ F+ P9 @( u' V) z! M# q2 }
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
6 n" Q  ~. S" F  J/ \% Q" b/ {+ U0 I  B2 E1 f  l/ @
GDT_Addr        PDesc   <$-GDT_def-1, >
* M& c/ c: d/ C' ^0 X. C  l2 i. L这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 2 ^1 N0 {  I' `/ k7 K) X5 o. R
option->compiler->advanced code generation中的instruction set选 80386% A! X5 _# i+ s# [4 ]% P1 ]
8 U3 J0 f8 T/ {1 x% e4 v
option->compiler->code generation中的option选中, [X] compile via assembler
/ T2 K* o7 G) u2 p  }
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 0 ~1 g( W8 I* s& h9 h' e
3 W( Q& O$ {# B+ n/ O0 `
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

6 F! Z0 u, P+ E; j% n/ z8 {9 d$ M6 @3 e6 }
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;0 y( v0 I: z, f( T0 ^. s& v; X
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 06:20 , Processed in 0.047078 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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