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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。7 V: P9 }1 H' s
4 V; W+ v& J: a* I
这是C的
  1. /********************************************************************
    ' m; c# D+ x* B! [8 Y
  2. *    File: DOS4G.H                                                  *
    + \- }3 e- G% T
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    * y9 c6 |% C1 |5 T4 ~# M
  4. *                                                                   *! r) L( g0 V2 [0 q$ ?/ }. Y+ C
  5. *    ========================Title===============================   *% d  k  |! P. O' h6 t7 n
  6. *        这个函数是让系统进入DOS 4G模式                             *; Y# `) l5 [# @4 ^
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *& L9 c$ q/ D# F
  8. *                                                                   *1 `5 G# H1 t  r4 P& y
  9. *       使用: openA20(); set4gb();                                  *
    9 R1 a8 T- c# Q; S: i9 @4 P1 B, k+ S
  10. *                                                                   *
    / E; i( @- Q( c" K7 A
  11. *   ===========================History==========================    *( M5 T3 Y! R1 F  E7 {+ z5 A
  12. *    author: bini                                                   *. T1 O4 y/ ~: p: N! M# G. T
  13. *      date: 2004-11-30  Frist version.                             *
    . H: r+ H, a: p# }. O: @5 B8 F8 `
  14. ********************************************************************/% o9 M# u  f6 [! a

  15. ' F" v0 }, V) u. P3 ^
  16. #include <conio.h>7 W- X; n) h: x9 {
  17. #pragma inline; V: s% P- t( \4 I

  18. 9 O; ~3 J: E" j  y) O
  19. /***********************************************/ M6 b6 n5 X% o
  20. *    两个GDT,第一个为系统使用,不管,默认为0   */ y" I1 G6 @/ F
  21. *    第二个为一个数据段,没有代码段。           *2 F) F. Y0 t& m) e# Q
  22. ***********************************************// e* Q/ x& b3 c7 U5 u$ _
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/- ?7 N6 Q6 l$ ?6 P
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    $ L5 x, c- X) V* |
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    " e& v6 e0 U( v
  26.                                       */; ^" Z, P# q% q5 f& W0 ^
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )2 H% ]' J3 j6 g
  28.                                          最高字节为 base( bit 24~31 )
    4 Z7 n" w3 X% ~' A- b- q; D8 G
  29.                                          
    / O$ B; v4 [" w6 y1 D$ s; W0 b
  30.                                          属性Attrib = 0x8F920 G% g; I( x, I5 D( ^$ f
  31.                                          8 V  [9 B8 S$ [" f5 h
  32.                                              属性位Hibyte低四位为 ; X5 S- K1 g* l3 z( e
  33.                                                  Limit( 16~19 )=F- k8 ?6 f+ ~2 b+ z  d# y: p
  34.                                              属性位Hibyte bit7 为粒度1 g' k9 p" `0 m
  35.                                                  (值1=4KB粒度)6 I0 J5 k9 N* m6 @; m8 S4 ^
  36.                                                  8F & 0x80 = 1
    3 e& v& J$ y8 s: a- J% J# i, o# T
  37.                                                  % l* l* z' H8 R  g' |6 n, A" f( [* `
  38.                                              属性位Lowbyte低四位为段类型,值=2& p1 y6 z. @0 y1 V
  39.                                                  表示为可读/写段
    % y. P+ j) t0 [0 O& I* N' L
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    ) E. o9 O! g, k: f; g$ B$ ?/ Q: Q2 v
  41.                                                  描述符对地址转换是有效的。
    % R( @: {1 Y; R- `- m
  42.                                                  bit0=1表示为:+ E8 M' `! H& c% c# Q+ ~
  43.                                                  系统段描述符。而不是门描述符。
    ; F" z% g+ u8 x  n3 q1 I
  44.                                              - c# |6 ~0 E; c+ P( c
  45.                                          */+ Y0 e# `: e' l: w: f! Z
  46. ( F: [/ R7 j3 U/ k
  47. /****************************************# V! E7 Q, z  t+ t! g2 g3 p+ u5 P
  48. *    GDTR寄存器, 48bit=6bytes            *
    ) A8 ~( G/ b- A- r4 i% ^+ U
  49. *    +-------------------------------+   *3 j, H) Y& O& z% W5 D1 Y& S
  50. *    |   32bit基地址       |16bit界限|   *
    : T: S  l- N6 u) N( R* R6 C
  51. *    +-------------------------------+   *9 i) E  ]! G7 S0 k! Z/ Q8 u
  52. ****************************************/
    7 V) x5 d& v/ P
  53. unsigned char GDT_Addr[6]={0};
    , g& ^7 k' v+ {& J! T) q5 q. g
  54. / K+ T" H/ u0 _  {5 ]
  55. /****************
    7 `* F' x2 s* ]9 Q8 p7 U
  56. *    打开A20门    *
    ! u' e, w+ A4 ~: U0 w) t3 z3 ~
  57. ****************/$ {- I7 F' X$ C7 B1 e) z0 q
  58. void openA20(void), m: Y  i6 e0 H; B2 \
  59. {
    7 U$ ?! P& q9 z4 ^9 ]
  60.     asm{
    + g+ I$ [( m5 c# P
  61.         pusha+ x" M% l0 i  k2 r7 _+ O4 G( N
  62.         in         al, 92H
    / e, o: U' c4 w* V* o
  63.         or         al, 0x027 l* I+ n2 ~8 b1 m. C3 q
  64.         out        0x92, al
    - a4 v! ^: F: \+ e- T) `# |
  65.         out        0xed, al" Q$ z/ `+ K4 {1 e
  66.         popa% D4 x) S$ _8 a: R% ^( W# N' g
  67.     }
    / f' _, U6 X7 V1 a3 H: D9 v' R: a
  68. }
    # ~8 k" j, w& R5 X! s
  69. 6 X, v. t% {# M7 R& T9 Y
  70. /***********************************************( B& G8 O! X; m: _
  71. *    函数功能:进入DOS4G                       *
    % {! r7 Q5 t" Y; A+ o4 c4 }& d
  72. *    ====================                      *5 ~+ T8 Y( L" c0 H
  73. *                                              *: d- x: i: ^2 ?3 }# S
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *" Y  }* q8 n; y( M$ H* t. V. a# e
  75. *   如:                                       *
    6 Y6 Z8 @) v  J/ ~
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    4 V" E9 d& q( {; u" }/ Z
  77. *       表示为 2个GTD                          *) m$ {6 k& h( f* Y! R
  78. *                                              *
    . ?8 A) |' u: l0 s3 x, ?4 R
  79. *    选择子为所在描述符内的字节偏移。          *! K. w5 q& b! N7 a, X
  80. *                                              *
    : X4 v4 M9 }/ S& X: ^7 A* }" I" s
  81. ***********************************************/
    1 `3 \3 E6 U" q+ S
  82. void set4gb(void)  f7 U1 T* n; u, d. H
  83. {
    5 l8 {: R4 |* h. s" b9 O. `2 J
  84.     asm{* q  C+ [3 j) r) R  b- t
  85.         cli& H$ H# @) z7 n8 U% l; O
  86.         /****************************************' ~" j! |5 ^8 F  Y2 z  w+ j
  87.         *    GDTR寄存器                          *
    $ l' ?, v; _5 V' k1 y9 \
  88.         *    +-------------------------------+   *& }8 }" y& Y4 \* q# B% m
  89.         *    |   32bit基地址       |16bit界限|   *
    ) [- D3 O6 p& x, Y
  90.         *    +-------------------------------+   *
    1 R( F+ w4 d5 Q' Z' r% w$ Q
  91.         *****************************************/
    ' O9 A/ X+ `+ P# ^8 d7 O& u. P
  92.         /*********************  h- P+ W0 T9 L5 ?; y0 s
  93.         *        得出段界限       *
    ( P3 t* A4 t, y: m9 ]: }+ U+ ~
  94.         *********************// J6 e+ m8 x3 a% e4 q- \6 t
  95.         mov        word ptr GDT_Addr[0], (2*8-1);0 I% v, E/ X8 W1 k6 C# d' k
  96.         /********************************************
    0 |! x0 ]# ?( i" z8 Q
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    3 Q4 h1 A6 h; s& U( d6 O
  98.         ********************************************// r; L: F  v- Q5 e1 {9 S
  99.         mov        eax, ds
    - H+ F# T9 J% k5 G- o# k
  100.         shl        eax, 4( ~- n7 W2 L$ o( K
  101.         xor        ebx, ebx( H1 R* C" \6 a' b' }
  102.         mov        bx, offset GDT_def% v6 ]5 g' {+ Q5 Y8 g
  103.         add        eax, ebx* u5 z# L' `, J$ u8 K2 @! [& A% s1 Y
  104.         mov        dword ptr GDT_Addr[2], eax9 Y" x( i- e: Y$ Q# y
  105.         lgdt       fword ptr GDT_Addr% f" {1 z5 n' N
  106.         /********************. i' }% ^9 n6 I4 V. y
  107.         *   选择子偏移      *
    4 }4 h, V. r, F
  108.         ********************/, y- q# r' v4 e
  109.         mov        bx, 83 x% c/ U- R/ V0 ^
  110.         mov        eax, cr0
    4 A( V! B/ k9 \/ ~1 p$ `+ u$ F) E
  111.         or         al, 1
    & @9 ?% p; G* O8 x
  112.         /**********************
      A+ Q4 Y; J9 P$ ?# Q7 p
  113.         *     进入保护模式    *9 C8 ^8 O/ d' @7 c
  114.         **********************/6 z' ?! F' ^" O% e, n' I8 q
  115.         mov        cr0, eax$ ]# }- ^* t, l: P0 L
  116.         jmp        pMod0 A4 t( l4 k4 Y6 v
  117.     }. ^! p4 n$ x& s' |# y! }$ F

  118. & q. B# C4 C' ^6 Z) ?
  119.     pMod: asm{
    " ^5 \1 b3 S( {) W! P4 }
  120.            /************************************************************+ ~4 w3 D9 x  `- u8 ?( ?
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *1 I- V( x. L4 ~# d+ i' A
  122.            ************************************************************/# m$ B9 F" h" ^' ]1 w- A% o
  123.         mov        fs, bx, A9 d5 E: J6 a8 U! c! R
  124.         mov        gs, bx1 x; {0 u  Y* H/ w
  125.         and        al, 0x0FE7 o+ t# u) W3 N- m3 W" S; W
  126.         /******************2 L" \* `9 f' A3 C
  127.         * 进入实模式      *# j" v! m6 G+ _" k0 w" D( D1 V
  128.         ******************/7 @# |" G' f- s9 Z; J
  129.         mov        cr0, eax! j" I0 g- l4 _$ {& V
  130.         jmp        rMod7 D3 \$ u) i4 \  r5 ~  w
  131.        }# ~3 m, f5 N& l; \6 u2 W3 P. z# u
  132. 7 |, i* U0 ~' r
  133.     rMod: asm{
    % j5 e5 G3 j( Z
  134.         /* ******************************************************************
    & y+ ?9 C; |" |, o8 m3 Y2 u& v' K
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    * z" x+ S, r6 G! E
  136.         ********************************************************************/: |, R. O* T- d0 W
  137.         mov        ax, 0
    , b" B' w/ o0 N- t0 ?0 w! v
  138.         mov        fs, ax. O% t9 H" ]% r: k$ e
  139.         mov        gs, ax# w3 G9 v: D) P0 J' y8 v6 D
  140.         sti& Z4 U. n& i7 I* r
  141.     }
    : u( n( v) ?) |
  142. }
复制代码
这是asm的
  1. ;/********************************************************************1 ]5 ~1 V" D0 ~
  2. ;*    File: DOS4G.asm                                                *" w4 B: D% [! u' b; K6 }2 ]% u
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *( ~: x" T: b& q) J. Q/ T, [# `& `
  4. ;*                                                                   *5 p) C& r) v7 @) {4 Z
  5. ;*    ========================Title===============================   *
    1 m( E! n0 D" n) ?9 }" T4 r
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    ; i  N- [7 ~- B( q, }
  7. ;*                                                                   *6 y" W& y0 T" Z/ x# i- K5 x8 r& v
  8. ;*   ===========================History==========================    *
    % r: l/ N6 f: ~8 e1 s$ J. r
  9. ;*    author: bini                                                   *
    - p4 j1 }7 l# Q6 D8 H! f
  10. ;*      date: 2008-10-08  Frist version.                             *
    ' q% z- R5 \( z# x
  11. ;********************************************************************/ . u. r* t/ y. E8 R5 k' I5 y0 g
  12. .model small  @, p5 M1 }9 Y
  13. .586p+ ?% L! G! M) p6 s5 q+ t

  14. - d. E) J5 C8 @1 Z- u2 p* K/ D$ K7 {
  15. DSEG  SEGMENT   USE16                 ;16位数据段' ^! J% x& D1 [

  16. , _- f5 J  _# |0 o- J7 D. c
  17. DESC            STRUC
    9 e1 T7 x) D( q* V8 y5 i) w9 C
  18.         LimitL          DW      0 ;段界限(BIT0-15)9 n. h3 g4 C( w3 ?" J8 Q
  19.         BaseL           DW      0 ;段基地址(BIT0-15)* }; k+ v3 g" y/ K: v4 [; l
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    * ~. ^* V1 K7 b9 X0 S
  21.         Attributes      DB      0 ;段属性
    6 }, N8 v0 V$ }7 `
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    8 o; @) Z. h7 F
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    5 x! Z' J, V; N8 @
  24. DESC            ENDS
    3 M" L$ r$ F3 ?( M. q
  25.   n' P8 q( [" X$ N: f2 V1 {) b
  26. PDesc           STRUC
    8 b4 \% G& }! G4 M
  27.         Limit           DW      0 ;16位界限  d" K3 P7 s& N9 ^
  28.         Base            DD      0 ;32位基地址
    # b) e& X; H4 X  G# A3 g8 N
  29. PDesc           ENDS
    & x! w- `, }/ u. b2 ]" p
  30. 0 Z' T% e! @2 i
  31. GDT_def         Label   Fword! [& {% v8 |8 I: Q8 W
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>8 T2 a7 l# C- Z& K2 l* k1 R$ A3 B
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>& E1 m' B, ~1 m. t7 W
  34. ) o2 h" \8 v/ d7 G. L7 z
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    ; D7 _3 ?* k$ H/ w! p9 o  c
  36. DSEG            ENDS                          ;数据段定义结束
    % g4 l5 e( Y# L  N

  37. & V; W9 _+ U) f% v  W: l2 Z7 d, L
  38. CSEG            SEGMENT USE16                 ;16位代码段1 x% v* E: Z6 f/ d  A+ q( x0 s
  39.                 ASSUME  CS:CSEG,DS:DSEG' F  ^, o- T% C. t
  40. .Startup
    ' N& c4 |$ r, Y6 `3 Q( v2 @
  41.         call      Set4gb/ F- G' f; H# J' _' @7 p+ b
  42. ;: q) _+ K& Z: C5 f7 z% v# N' d
  43. ;       fs, gs即能访问4GB空间0 M' N$ C+ Y- }+ q) j  E
  44. ;       write your code in here.
    5 F- O$ Y( P( U4 ]- A0 D) r+ D
  45. ;6 w- x4 O1 I3 z' I( W5 X8 d6 p
  46.         .exit
    # j% i2 B# x0 V; G+ [. \
  47.         # [7 D5 x5 x% S3 E9 J
  48. Set4gb          PROC      NEAR# a. U4 @# a2 ?) H# g# p! b" B
  49.         in        al, 92h
      ?  E" P, _! S5 H' O
  50.         or        al, 0025 u! O, @: ~  S5 r& U
  51.         out       092h, al1 M2 _6 m4 I" i' T2 C' x
  52.         out       0edh, al! i, r! @: A" i7 G4 S% D# C
  53. 3 e' G) O2 r$ b* L( W# c
  54.         cli: Y9 y8 u/ L5 u  o
  55. 6 R# U9 D5 g3 v8 x% H. p
  56. ;        mov      word ptr GDT_Addr, (2*8-1);5 m. p2 X6 t7 f9 z) Z
  57. ) u3 c3 ~0 _7 z2 b' a
  58.         mov       eax, ds
    2 ]8 j- u$ n! Y/ v2 k" R" i, S0 Z
  59.         shl       eax, 4- E1 Q( M4 A& z! k. y
  60.         xor       ebx, ebx
    2 z2 w  `+ f  ?! e
  61.         mov       bx, offset GDT_def6 L% O* }8 s: J2 n" V0 l
  62.         add       eax, ebx
    , Y% ]" n* d, l4 ~4 h/ {' k" E* Q! j6 X
  63.         mov       dword ptr GDT_Addr.Base, eax
    & ?0 o$ T) T$ s
  64.         lgdt      fword ptr GDT_Addr
    2 }, X7 }6 C# s9 \, V( K
  65. + Q- a% w8 B; M+ ?
  66.         mov       bx, 86 S, j' ^" g+ \. c& \7 m
  67.         mov       eax, cr09 @9 P; |9 T" F0 b% P" I4 ~- V
  68.         or        al, 1; B! o$ v+ X$ i, q  Q, g4 W" F
  69.         mov       cr0, eax3 x0 ~5 E. [+ n. E: {) C

  70. : ~3 ]! G8 \! P+ P
  71.         jmp       pMod& T. t* l) y' O. O: X
  72.     pMod:" P6 @* m! ^# d" k# f- E3 B% X

  73. / f  E, k% _$ J1 T
  74.         mov       fs, bx
    5 @" B6 k9 U7 q5 U
  75.         mov       gs, bx
    - D/ a  k9 r7 X+ u: N
  76.         and       al, 0FEh, k5 T' |% ]( L
  77.         mov       cr0, eax
    2 W9 y; ?3 b( N; A; c
  78.         
    2 m: ]& v) y$ h# k6 m9 ?
  79.         jmp       rMod3 R, N! X$ f1 Q, T7 @
  80.     rMod:
    % Z+ e/ d* l1 ?' ^

  81. ( c1 W2 V) z# k, c5 ~/ P7 d2 y
  82.         mov       ax, 05 o' R- k. M7 h# Q3 p2 e, B: v7 O
  83.         mov       fs, ax
    " P( {4 T( k1 k1 _6 E) V# [
  84.         mov       gs, ax
    % L% [% L6 u% @2 ]
  85.         
    5 U% e$ W3 R# m/ c! q# @
  86.         ; 在2M的位置测试写一下数据
    0 J% x2 T% l* V/ k
  87.         mov       esi, 200000h: B! I7 ~6 [- X9 }, j3 l+ W" ~+ o
  88.         mov       dword ptr fs:[esi], 055aa55aah9 [! W+ D; D9 H, I+ q
  89.         ; 用RU去看看200000h的位置是否是此数据....
    ' t9 M. `9 H# x0 m4 k6 n9 Y
  90. # s: D6 B- O2 T" K$ n4 f' _; k/ I/ y
  91.         sti8 P9 J! ~" `/ a) y& e# z9 z: x
  92.         ret: Z* J  z0 f2 E6 o; R+ z
  93. Set4gb  ENDP; r( V1 s% d: [  a2 ~
  94.       
    / \4 g& x4 a2 _2 R
  95. CSEG           ENDS                              ;代码段定义结束& m) C0 X9 }2 t. G2 Y- Q  E5 a
  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选 803860 B& X( _3 s/ Q7 J+ L# v, ?
2 G- u& a  U+ x/ R' F/ Z5 o
option->compiler->code generation中的option选中, [X] compile via assembler* v2 E: K4 [. T: p
4 b6 }+ U2 b2 E% P5 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;: ^! C4 L" A/ l& z
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;; L0 s; I9 h# [. I
5 H, ^! s0 r# f- S
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;6 x- x; [  D3 O2 R) B
替换如下,
1 T3 e, O2 m$ W0 B2 F/ J- c* `Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>+ m7 d, S) ?! G7 Z
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
5 h. U% @2 y( N: `5 Y' W" ]+ ~
GDT_Addr        PDesc   <$-GDT_def-1, >9 j; N$ @( @3 J1 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' r7 V, F8 O  r3 j. `! ?# yoption->compiler->advanced code generation中的instruction set选 80386
% ~- ?( k; L4 i) X) K
8 b7 f9 J. r3 G- N9 I, r+ Zoption->compiler->code generation中的option选中, [X] compile via assembler
* Z: E1 s' r$ r. c3 R
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
- w4 O  @2 [8 Z8 H2 c
- m" j; P) u" M$ H: N1 @   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

! H1 e$ ]/ j- S
; o- I0 L6 p% S( ?1 [我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;6 m9 o% H2 Y  l2 D3 [( X
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 00:44 , Processed in 0.332279 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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