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

DOS 4G big real Mode Demo code。

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

5 H8 Q( C+ [) l. y+ |0 v) p这是C的
  1. /********************************************************************$ ~# ~  w  H! ]
  2. *    File: DOS4G.H                                                  *! r5 z# |. \1 \5 A
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    ! o* a2 v! ]. o& I' O: m2 a
  4. *                                                                   *
    ( Z# V0 s; ?/ e* Y$ _" b9 n
  5. *    ========================Title===============================   *6 s5 S% M0 ~6 `5 B
  6. *        这个函数是让系统进入DOS 4G模式                             *& P2 F/ S% \5 X( _$ A& |
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    9 [* `) S6 S7 z7 [0 o
  8. *                                                                   *  f' y& f$ v2 i& ^( _
  9. *       使用: openA20(); set4gb();                                  *
    , k. `0 {+ t( x# Z; {
  10. *                                                                   *
    + `: l$ q2 ?3 X3 }8 a
  11. *   ===========================History==========================    *
    1 ^+ S1 g7 V! Z  u0 m8 P1 k
  12. *    author: bini                                                   *, K( @' v' b5 s, h5 y
  13. *      date: 2004-11-30  Frist version.                             *6 l, ^0 x1 e3 n
  14. ********************************************************************/3 J4 Z* Z/ @; w/ {

  15. 0 N$ J6 j/ s& T' s
  16. #include <conio.h>4 A6 I3 t4 l) w8 Q/ H
  17. #pragma inline
    7 B" R; z; W- @1 z
  18. 7 `1 k0 J) z9 d
  19. /***********************************************
    9 ~% F- L' J& v9 Z
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    $ L, B5 B/ x, e+ P& V6 I  g
  21. *    第二个为一个数据段,没有代码段。           *
    # [/ q! A  C# L  a, w
  22. ***********************************************/" z2 g% l' ~5 L5 z: M
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/" e9 v+ M! N2 @( H; Z4 z: N; F
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, 5 K+ c. |, y: t$ B) |
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF ! ^; N& x. V  L
  26.                                       */
    ) M6 `8 u5 p9 H0 {* M
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 ), b* V; Z2 B' A5 T5 @8 K
  28.                                          最高字节为 base( bit 24~31 )- G. J  K- j( A! M* H) F
  29.                                          ( W2 [8 i$ ~. U% [
  30.                                          属性Attrib = 0x8F92
    ! Z4 @3 g! m8 n* I
  31.                                          + m) p# u) n7 {4 Z: A, l) A' \: t
  32.                                              属性位Hibyte低四位为 8 V, W8 ~+ P1 U9 q
  33.                                                  Limit( 16~19 )=F1 W0 |9 m! A4 M- s5 U+ ^* i
  34.                                              属性位Hibyte bit7 为粒度
    : f/ T8 l: U) s& b6 {
  35.                                                  (值1=4KB粒度)
    1 N5 Z3 v3 a, Y8 e  f
  36.                                                  8F & 0x80 = 1# v5 i& q) X1 p5 o8 |8 t4 ?6 U
  37.                                                 
    / n0 w3 }3 Y3 l9 h6 D% X* Q% W
  38.                                              属性位Lowbyte低四位为段类型,值=2. i1 t/ L' v) w  k$ }9 k' E: p
  39.                                                  表示为可读/写段
    0 U; V0 o4 m0 N& ]/ c" ^+ H
  40.                                              属性位Hibyte高四位=9,bit3=1表示:4 g, N) B. {0 J3 r& X) Q
  41.                                                  描述符对地址转换是有效的。; b; X6 a6 d4 J  @9 Y
  42.                                                  bit0=1表示为:
    $ \  J3 u* q' x$ W6 M
  43.                                                  系统段描述符。而不是门描述符。9 |8 K9 J! `% D. b  h7 N6 [
  44.                                              1 L9 y7 ]1 b: d0 _. U
  45.                                          */
    & u5 P3 M' S' z6 p+ I
  46. & \$ a# s9 M* S: j
  47. /****************************************
    9 V% Z8 G3 D- q3 C5 _  A3 K
  48. *    GDTR寄存器, 48bit=6bytes            *
    1 q" i) f$ I1 P% d8 Y% U& [
  49. *    +-------------------------------+   *
    ( C) d  c; s" F$ h' g* _6 k+ ~" B+ ^
  50. *    |   32bit基地址       |16bit界限|   *. h' J$ q  U/ b0 }
  51. *    +-------------------------------+   *
    " C$ a5 b( U7 R5 v4 f
  52. ****************************************/
    4 Q" `( v( b% Q# I
  53. unsigned char GDT_Addr[6]={0};, y! b* k5 s" A4 [9 r1 r9 O

  54. / `( T; z  y, K4 L
  55. /****************; _# D: V* s' y  D6 V, i
  56. *    打开A20门    *
    8 g4 Z( T; f8 {6 k6 X: c
  57. ****************/% E: K! U5 Z! A5 `. b2 u+ }" x
  58. void openA20(void)
    / i4 B# K# p) X. i
  59. {# T' Z9 K) e) c; z
  60.     asm{) D( |3 M; Y' X, z* @' q
  61.         pusha
    1 c, B# w0 m+ m# O* O  f$ e" j
  62.         in         al, 92H' z4 J  C, y; ?6 q  ]* P2 r6 a
  63.         or         al, 0x02
    . g7 |$ t  }# c
  64.         out        0x92, al
    2 n2 n; s- Y) D8 K# l+ d
  65.         out        0xed, al
    * P% [% ^" ^! J  B9 @
  66.         popa
    % w) M/ f- D4 N  w1 z
  67.     }7 ^2 `  A4 N8 j& R: o" |
  68. }
    5 g2 h  i' s1 x$ q- K% l
  69. 2 [; J9 y9 Z4 x: I
  70. /***********************************************1 G! ?: F# h1 ^- d
  71. *    函数功能:进入DOS4G                       *8 S& |6 J0 D) S8 i8 o# C
  72. *    ====================                      *; j1 n7 }1 V7 _* q5 ]* e7 h
  73. *                                              *- K0 n. t1 K  h7 D9 w
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *) T9 {/ i9 Q( n' b# U  }+ @" a
  75. *   如:                                       *& Y9 i- P$ C2 H' O
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *' w: W$ m3 z) L# b
  77. *       表示为 2个GTD                          *' y: o# I  M1 z% u
  78. *                                              *- V& y. v8 F: \  V' s2 n
  79. *    选择子为所在描述符内的字节偏移。          *% i* h) M& F( v+ T' _# A6 |
  80. *                                              *; z8 j0 W- i8 a: C0 h/ G  Z  T
  81. ***********************************************/+ j: H1 D5 c  W1 C7 o) V. S2 O
  82. void set4gb(void)9 P; l8 A$ l0 n3 F, P7 |
  83. {
    & i# z1 d, u, _6 j
  84.     asm{
    $ S/ u% O  C9 r$ {6 k
  85.         cli
    , d( T1 w6 f0 d* @  V$ K# V
  86.         /****************************************
    : j  k% A5 L$ \$ H! @
  87.         *    GDTR寄存器                          *, n1 v5 L- }8 a+ }+ b1 v0 s
  88.         *    +-------------------------------+   *+ Q- ?# c0 S& v/ o
  89.         *    |   32bit基地址       |16bit界限|   *# \6 ?; S* X& `. D* Z9 x- `; u9 P
  90.         *    +-------------------------------+   *
    ( j7 z+ a* b' }5 ^- u  Y
  91.         *****************************************/- i7 z" u& z1 w! N  J1 V/ ^
  92.         /*********************7 T8 x; o0 P* |) t& W' `% s5 n
  93.         *        得出段界限       *
    ; |/ O6 y8 n0 i4 t! a# @' ?
  94.         *********************/5 C2 N  D/ ?; \6 ~8 c: Y7 J
  95.         mov        word ptr GDT_Addr[0], (2*8-1);# z' Q* P0 C  m1 ^  m4 _) U5 J
  96.         /********************************************& Q0 F; S2 R, U5 {
  97.         *    计算GDT表的32位基地址,存入GDTR        *8 k% ~* b: a. J4 Z
  98.         ********************************************/
    7 o/ O$ E( ?$ K
  99.         mov        eax, ds
    1 t- I& A# m3 J1 v: n& C
  100.         shl        eax, 4
    : k8 h0 i; ^* p* K
  101.         xor        ebx, ebx, v8 ^9 s5 R$ \' X* u4 A, H
  102.         mov        bx, offset GDT_def
    - V3 @. B& x6 M1 n) P
  103.         add        eax, ebx  ^  M1 ]: z0 r% B  f. R
  104.         mov        dword ptr GDT_Addr[2], eax7 F) L" l: v! p) g' N0 m' T1 h
  105.         lgdt       fword ptr GDT_Addr) g- q2 t$ c' ?3 L' {! D) W9 f0 L2 F* K
  106.         /********************: s; d9 Y' H6 l& c0 b  n
  107.         *   选择子偏移      */ D: ]5 k" N+ T! Y2 Z& V. ^
  108.         ********************/
    + F$ h8 W8 R& ^5 @* {
  109.         mov        bx, 8
    / N6 N# l. x: p" N) K9 {
  110.         mov        eax, cr0" p, N0 T1 H' \
  111.         or         al, 14 D+ ?% L" n) g$ W- a8 {
  112.         /**********************4 W! ~- M- z  l5 U- L  K% C" `% F1 j
  113.         *     进入保护模式    *
    ) d' |' a5 t0 u- G4 i' {
  114.         **********************/
    5 j! c. ^3 [1 ^
  115.         mov        cr0, eax( S  Z3 ]: [- Y( j% R
  116.         jmp        pMod
    6 o9 G$ Z7 d) I5 E& C4 r
  117.     }' k! H" G- N$ C3 R, M
  118. . ]7 Y, r9 t4 Q, t. i8 T! ^
  119.     pMod: asm{
    " H# ~$ X8 p- `; x
  120.            /************************************************************+ N1 G& L. b* o" A* S. C- `
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    : g' \) e+ c& M  y3 z
  122.            ************************************************************/
    ' {9 n3 F! P0 a- z0 x3 x0 u
  123.         mov        fs, bx" T' W# e2 I1 X. S7 O5 R
  124.         mov        gs, bx' H: U  M/ l4 `& p  f8 @
  125.         and        al, 0x0FE
    $ W- }4 R6 C: t  _  X
  126.         /******************% u  d3 H0 ~' j% [& l( @' ^5 d
  127.         * 进入实模式      *
    : S4 K4 |. b% [- ]9 t* Z
  128.         ******************// x  j- Y( l1 F4 b3 E4 t
  129.         mov        cr0, eax$ F3 T# h7 ]4 m- H5 c' U" |
  130.         jmp        rMod7 W- C: g8 ]8 r5 B; R
  131.        }
    & J/ m2 r, c2 H8 }  J
  132. 9 t( \2 A2 \. e+ a7 @
  133.     rMod: asm{
    ; f5 S* n/ w# e
  134.         /* ******************************************************************
    + S# z6 v( e- a! L
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *4 R; U; E$ Y  a+ `( ], z) o( `
  136.         ********************************************************************/
      r! p2 R: E! q, K" ?& e
  137.         mov        ax, 0
    ; O1 q) k- W4 {6 o0 W
  138.         mov        fs, ax8 i* \2 i3 x$ h6 H
  139.         mov        gs, ax6 o( f$ z  H/ x, z
  140.         sti  h, A' V: y" F4 O9 ?3 m' S
  141.     }  U  u2 e( _  \
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    , ~; ^- p0 V, z* }
  2. ;*    File: DOS4G.asm                                                *
    ( J* j5 p" j" @( `2 _
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    3 ~% }6 X( i8 N" v- }  v
  4. ;*                                                                   *% ^5 f! f7 O$ h: w, \
  5. ;*    ========================Title===============================   */ Q+ z  p6 E* \$ R  t: v6 E
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    ; m( U% W5 G, K
  7. ;*                                                                   */ w; J  R, U8 g4 o
  8. ;*   ===========================History==========================    *
    2 S/ [# S" L: ]% A) q3 u0 ~# ~
  9. ;*    author: bini                                                   *6 R# l3 B6 t, k1 E
  10. ;*      date: 2008-10-08  Frist version.                             *3 v1 Q8 j3 ~6 q: ^& f  |, O
  11. ;********************************************************************/
    + h$ h" c. }0 I
  12. .model small- j/ P  ]# o; n0 [
  13. .586p
    ' M1 s$ h0 c) Y3 e
  14. ' H% _1 e, |  p9 T
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    0 s0 X4 H- C+ L0 B4 i+ g
  16. 9 P2 \4 U+ p1 h* p' m! I
  17. DESC            STRUC
    ; \! R& g9 D) n( t- t
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    " S2 P+ l1 o- L! t/ ^
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    ! n) g2 z, E- N
  20.         BaseM           DB      0 ;段基地址(BIT16-23)) ?- d% k0 [+ S5 f
  21.         Attributes      DB      0 ;段属性
    # f7 s+ ~- B1 K; H+ T  M) E$ `
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    - u( n, F" y  W
  23.         BaseH           DB      0 ;段基地址(BIT24-31)0 N$ X, N6 h, {/ ]' Q# G/ p6 M# J
  24. DESC            ENDS
    8 I$ Y/ R/ j8 B, j
  25. ) T9 L3 l1 l! v& @
  26. PDesc           STRUC
    ( [9 R& W' d. W* A% ]
  27.         Limit           DW      0 ;16位界限" T# w+ n# S3 M, ?4 F$ [# |
  28.         Base            DD      0 ;32位基地址7 z% k1 z+ ~, r* _
  29. PDesc           ENDS
    3 O" ]. w' p9 y# c4 L

  30. 5 p+ b& s# d0 `! R9 K+ f9 `! r
  31. GDT_def         Label   Fword
    * u' l0 K5 b/ v& |6 r$ d: ]1 {, w
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
      ~& |' X- b) L6 k/ L
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>" V3 s. w  ~) A
  34. ! J( G# w' h1 a
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    * q! X! W4 ^9 ?6 a) V: \
  36. DSEG            ENDS                          ;数据段定义结束
    ; i& [! C! ?$ x: K
  37. 4 a$ y  x: j. t1 c4 s; I* ~% Q8 ?
  38. CSEG            SEGMENT USE16                 ;16位代码段
    3 p6 s+ ~! |5 P! l0 z3 W* G
  39.                 ASSUME  CS:CSEG,DS:DSEG' [3 N/ b. Z9 H- g7 A' W
  40. .Startup5 h* }2 y2 t2 }; F+ x
  41.         call      Set4gb
    , U/ F  F, S3 P' ?
  42. ;
    ( Q& }! G/ Q' R& G: }9 I/ t/ n8 T
  43. ;       fs, gs即能访问4GB空间5 P* z" B$ y1 p( z: Y! F3 y( f
  44. ;       write your code in here.+ C0 u/ c( P( B
  45. ;
    ; L6 n2 [; g4 Z- N6 k
  46.         .exit3 H+ q) S6 ]( T1 d3 |7 |
  47.         ( C+ k) S$ u: m% J3 j* H
  48. Set4gb          PROC      NEAR
    7 |% D8 b7 ]( _) ?, K- c) D
  49.         in        al, 92h" K2 U! J5 p% C. M! J" a# {
  50.         or        al, 002
    : l2 r1 r6 j/ [8 F. F' N' j4 F- g  a
  51.         out       092h, al
    7 Z( ~- [4 M, ~; V, ^; k: @
  52.         out       0edh, al  V& j2 o$ U# d5 e: v" P
  53. . S3 V' {0 E5 W) ?
  54.         cli( R) c: M, y2 E! ]6 v* I( W2 z
  55. ' g% r) n4 R& q4 @
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    8 n# p5 j( i% g" Q( Q
  57. & O3 Q! J. l/ |- m8 _' K
  58.         mov       eax, ds
      G# z( N, `. N* G6 _8 [8 t
  59.         shl       eax, 4
    : K; {8 a7 x  e4 d- `
  60.         xor       ebx, ebx' Q( \- u$ U. p$ U6 f7 F3 v1 D
  61.         mov       bx, offset GDT_def
    1 @6 D* }+ O7 }  a3 z/ K5 D6 N
  62.         add       eax, ebx; q- ?) Y/ D. R& l" x& c6 H
  63.         mov       dword ptr GDT_Addr.Base, eax- r5 @. ?2 N7 E, W2 Q% A
  64.         lgdt      fword ptr GDT_Addr
    ' ?& L; k9 _, Y, W
  65. * ?5 o' N; R  T8 ?8 ^
  66.         mov       bx, 85 ~( B7 H) g. j3 V$ J* x4 O
  67.         mov       eax, cr0# H  S. h! {8 B* y
  68.         or        al, 1, d5 v' Y; J4 L$ V$ m
  69.         mov       cr0, eax/ z. e3 D3 w6 {. s- P  Q0 ]

  70. , y2 K* Y$ ]# e/ E2 z* N
  71.         jmp       pMod8 w6 X# A# r) A) [9 M+ q7 p
  72.     pMod:- y  P% x7 |! V( [& s$ T
  73. 5 X+ q6 Y3 ~4 V1 Q4 c6 o0 E
  74.         mov       fs, bx% x3 L2 d- K; `* B
  75.         mov       gs, bx
    ' c; r; T  \) h; m7 K0 Q
  76.         and       al, 0FEh
    , ~& f/ ^8 h1 ~7 x
  77.         mov       cr0, eax
    - S" U2 U* k9 ?+ g$ I* X
  78.         
    : t" y& m/ g  f" O  T. [$ }- f1 d
  79.         jmp       rMod
    " V3 H3 ~' L4 n1 v+ V, H. j9 f
  80.     rMod:7 Z; m/ F& x" [; k

  81. " C) B) z: ~* e9 T
  82.         mov       ax, 0
    5 W! z& A3 E4 }4 K' K% V# E9 P
  83.         mov       fs, ax
    % f! j( Z9 n0 j7 Z- [  A
  84.         mov       gs, ax
    8 u' f% s: q4 }+ \$ W
  85.         $ }0 E. y1 r+ [" v
  86.         ; 在2M的位置测试写一下数据
    # m5 ]0 Q5 J. _/ b* V( C* |3 _
  87.         mov       esi, 200000h
    1 m, Q8 M9 ?# E$ ?7 f2 x
  88.         mov       dword ptr fs:[esi], 055aa55aah
    , o$ \* s( W0 x8 U
  89.         ; 用RU去看看200000h的位置是否是此数据....( y2 J, b! f0 E9 t' E. `
  90. 7 g9 M  D  a  R+ j3 {2 l% V
  91.         sti
    7 }( p# \# @! S# R( B( Z' |
  92.         ret
    . J% b+ I1 Q5 a. `0 K' u- H
  93. Set4gb  ENDP4 ^$ z/ G) z  b6 j
  94.       
    " d7 m( b( t1 c) g9 o, B
  95. CSEG           ENDS                              ;代码段定义结束
    $ q6 _  e. [, u
  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
+ p- [/ E- x" l6 H- u( j/ E9 N3 {! `! {- L( S3 m7 q
option->compiler->code generation中的option选中, [X] compile via assembler
. ]' K0 F4 f: l
! f" e' p. j  ?: z[ 本帖最后由 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;! ~8 `; ?: z% P1 P1 _5 a" E8 I
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;$ f5 x% T, R; b* H' [& m* h

# }' R/ H2 w  x! [GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
7 I& m* n$ S8 \) r, X7 c: O' w 替换如下,1 l8 J0 @: x" ~# b- B. N. b6 D
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
: N! a! F5 B" s" {  Z) x* `+ AData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>( g1 A7 y3 |, s3 B: H/ ^- H; |
3 w. p4 M& M2 l0 Y' |# S
GDT_Addr        PDesc   <$-GDT_def-1, >
7 T9 L5 i' x4 G6 S4 G" ~+ X  Y! |$ F这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
, D  J3 ^: _; _1 C4 B" y* V! X3 Qoption->compiler->advanced code generation中的instruction set选 80386" P9 J7 Q6 R9 s* h4 Q3 T! C1 M

' s* B/ u9 J/ Y9 U' Z: Doption->compiler->code generation中的option选中, [X] compile via assembler
' d/ v& ?7 ?+ P* J; m
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
; }' Z# t# }6 [0 h' {6 D
% ]# X( V8 ~5 ?( N. e   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

( S! g, l- Y& C5 A
' h* @3 G; n7 H" l; G我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;+ ?  k# O% b3 G/ `" Z6 v/ W! v5 `
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 18:01 , Processed in 0.564365 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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