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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。4 o: B) J+ Y6 F4 @- c9 t

. Q7 [6 Q. F# Z2 v这是C的
  1. /********************************************************************
    6 D4 n7 J: Q' A( d! Y7 |
  2. *    File: DOS4G.H                                                  *
    3 n1 d- o0 B, v) |/ b
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    2 Q/ Q) a; w. @5 ]: N
  4. *                                                                   *
    ) U9 f* D  C. G2 Y
  5. *    ========================Title===============================   *
    % N2 C, |# x) B8 h2 e
  6. *        这个函数是让系统进入DOS 4G模式                             *. {  J0 E9 L- n6 d( ?
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *5 g! [' C# P% T2 d' G
  8. *                                                                   *
    + o. v' M" a0 c1 Z1 v1 k
  9. *       使用: openA20(); set4gb();                                  *1 u* P! U4 A, A7 F6 t7 M4 F* j
  10. *                                                                   *
    : R  m( m( V) I' b1 i0 o& ^
  11. *   ===========================History==========================    *
    , x4 m7 S$ X9 M" Z
  12. *    author: bini                                                   *; x3 J) P: j9 O1 v6 S, m6 I
  13. *      date: 2004-11-30  Frist version.                             *
    , W4 `: P! P6 B, B8 H, n; o, k
  14. ********************************************************************/- E/ h$ D$ s- L: ]4 x5 [9 E3 i
  15. 3 d( F2 N( I% r( K1 t9 I
  16. #include <conio.h>  Y' S3 O, _# t* l; S
  17. #pragma inline
    & i" o+ E- v: p" M* F
  18.   c2 u# H, K8 w) D/ f4 T
  19. /***********************************************0 _& p' P, R' T
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    1 }% Q& M1 G$ J: ~+ W
  21. *    第二个为一个数据段,没有代码段。           *2 L  {0 @7 _7 l2 q/ t6 E8 C& f
  22. ***********************************************/
    2 n2 n6 L" S' c% k7 w8 @' `& s8 V! G
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/3 M: J% M1 Q5 O% j5 T3 s! H
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    ( G0 v: V, Y7 o8 L" @$ `
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF ) r" Z+ l) o9 ]  M0 ]- N) D
  26.                                       */! L3 Y: c! y7 g9 c+ Z
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    2 h8 }( x  j* P5 k0 x5 D
  28.                                          最高字节为 base( bit 24~31 )$ k4 w  N0 j( T, X+ ~
  29.                                          4 ^4 V1 K9 Q% ~* K8 N
  30.                                          属性Attrib = 0x8F92
    5 \5 ^: J) T/ H4 P$ B0 T
  31.                                          
    5 r9 b4 v# {! U! h* u  m
  32.                                              属性位Hibyte低四位为
    ! o2 c0 M2 X- W
  33.                                                  Limit( 16~19 )=F
    ) h2 s% n4 g' L/ _$ V
  34.                                              属性位Hibyte bit7 为粒度
    " p0 c' E( n8 f% ?. `
  35.                                                  (值1=4KB粒度); @4 j3 o: t, [+ c
  36.                                                  8F & 0x80 = 1
    : l. i* ?7 j" J( _# {
  37.                                                  4 D# z9 W% r+ p0 O& ]  M& s
  38.                                              属性位Lowbyte低四位为段类型,值=2
    3 u0 E7 ~! W( j1 N3 Z
  39.                                                  表示为可读/写段
    9 y( z; G4 q) V) e. a6 F
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    $ ]+ c0 m% B5 ]0 t. |
  41.                                                  描述符对地址转换是有效的。
    0 L* n. P5 @* H9 x5 F
  42.                                                  bit0=1表示为:
    1 |$ r& v* c0 i2 k- i: y! ~; F  z
  43.                                                  系统段描述符。而不是门描述符。" H( D& b0 ^8 L% g5 j" t
  44.                                              
    . G5 }7 r& y) }$ _2 e
  45.                                          */
    0 |4 n8 J9 }. u3 h& s: K
  46. % a+ u/ D1 I, o" b
  47. /****************************************/ F* @- K1 n: L% K
  48. *    GDTR寄存器, 48bit=6bytes            *! T8 C( s  ]: }% P( X7 @
  49. *    +-------------------------------+   *
    + n. S! J& J. ~. X
  50. *    |   32bit基地址       |16bit界限|   *
    2 P* \: u* N' g9 J, Y
  51. *    +-------------------------------+   *
    ; ^8 o  t( q) K9 l" \5 m+ e$ C
  52. ****************************************/
    0 _2 e0 M9 s2 C4 I) K: U
  53. unsigned char GDT_Addr[6]={0};; s  ]( x6 Q4 s1 ~1 E  l( a
  54. 1 x/ [5 M0 j# b
  55. /****************
    % [$ }" d9 }. K. }
  56. *    打开A20门    *
    ) i/ I8 s2 S. N. a* u) t
  57. ****************/" M; p6 ~3 b7 h& \5 x
  58. void openA20(void)8 e' H8 f2 V5 K( I7 I1 A6 N! n  W$ l
  59. {. g" s4 N# l! w& G% T* z2 V& ?
  60.     asm{( V3 q* F) N; o& I
  61.         pusha
    9 F  N$ ~8 ]- P; K3 ~, u) ^+ }
  62.         in         al, 92H
    4 g: P' }8 g: R" A$ L$ W$ d
  63.         or         al, 0x02% j3 i- b& G0 k
  64.         out        0x92, al- b+ A7 U; v) z" s+ l! F! n! j! S
  65.         out        0xed, al- l' ?8 @( _4 [/ ]/ J* o
  66.         popa
    3 e0 I& Y0 K3 J" z% ~3 L+ y  g
  67.     }
    4 }) b5 G' r. p8 L' D6 S9 R
  68. }7 f( B" F; a; t
  69. 5 y+ W; O. R' c8 c. p5 |; K) ]: {$ [
  70. /************************************************ d# l: O5 e3 l
  71. *    函数功能:进入DOS4G                       *
      E' e( F. v! g7 V6 ?! _$ T* F
  72. *    ====================                      *2 ?* _% ]3 T/ B3 F: ~# W
  73. *                                              *
      s5 G9 p% I7 _1 c% Y! x
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    7 b* s! M" c+ U; U
  75. *   如:                                       *
    ( J6 E$ S3 t' s6 H9 A2 a: y9 q3 j
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *1 }. Y+ L! a& r( q
  77. *       表示为 2个GTD                          *
    5 @' i; a" R# G. {6 s# a
  78. *                                              *, Y* F0 T" E; b  ?2 z
  79. *    选择子为所在描述符内的字节偏移。          *
    9 ^3 l7 v9 f) e  D7 V
  80. *                                              *
    + ~9 w; ~4 L1 `% o  f
  81. ***********************************************/
    7 m3 \* m! a9 N
  82. void set4gb(void)  F2 y! `8 I/ c% R: v& i
  83. {
    + |$ n4 C' `+ h) F7 |
  84.     asm{
    3 D9 C1 I4 u+ f3 k" K* D& _  P
  85.         cli. y8 b2 j+ S9 T0 A2 E. I4 r
  86.         /****************************************4 n; V* B3 I9 u$ ?1 q
  87.         *    GDTR寄存器                          *
    & W4 T, X* R( G5 |* y' Y: ^
  88.         *    +-------------------------------+   *
    . U/ ^# u; c) v/ N9 O
  89.         *    |   32bit基地址       |16bit界限|   *4 _! k% X, a% t  O9 {3 e
  90.         *    +-------------------------------+   *
    / L. _' s9 K5 h8 u
  91.         *****************************************/
      e( T9 ]& U7 R- L! u
  92.         /*********************
    * z+ g4 l: ~  v7 @0 z+ A7 }# M
  93.         *        得出段界限       *
    1 G$ @. i% O5 \2 h# L! p) Z
  94.         *********************/2 F7 E8 K! t8 ]
  95.         mov        word ptr GDT_Addr[0], (2*8-1);0 {8 t) X" ?% g9 |# J. A( e
  96.         /********************************************7 o0 q4 p: k, D6 M& i2 B- }
  97.         *    计算GDT表的32位基地址,存入GDTR        *! H, c6 Z2 B6 D: A
  98.         ********************************************/
    ; [2 y" b5 u9 p0 t
  99.         mov        eax, ds
    - H' C' t" U# H  d4 o) Y: g
  100.         shl        eax, 4: @. h9 |3 d. U$ |+ z2 w
  101.         xor        ebx, ebx
    1 k/ `4 F; Y* A1 r( L
  102.         mov        bx, offset GDT_def; @& W1 ~! V6 L
  103.         add        eax, ebx  M: Q* I" Q: u; Y3 C
  104.         mov        dword ptr GDT_Addr[2], eax" }$ ^6 Y; h# ^' J( i
  105.         lgdt       fword ptr GDT_Addr
    ' Z4 b! a1 U- W2 o  c
  106.         /********************
    ) h9 I6 z/ s, [) _; N$ ]  w  @' D+ _/ {
  107.         *   选择子偏移      *: _/ @, J9 U: v. W
  108.         ********************/
    + O2 `3 m* y2 `7 I& o
  109.         mov        bx, 8% n% _& j" H" T
  110.         mov        eax, cr0
    ) l' v  e4 _- x" b
  111.         or         al, 1
    ! m( G2 c$ A9 ^
  112.         /**********************8 I& A$ l9 q( Y9 f. R# h
  113.         *     进入保护模式    *
    & n/ ^5 v7 A% z# D7 ^" d( W
  114.         **********************/
    - L2 c4 g/ U+ `: g* z
  115.         mov        cr0, eax
    5 {$ W+ {4 |# i5 I  j" K
  116.         jmp        pMod2 b! M( }) U. B& A# y; |( ?7 B5 `
  117.     }6 b6 Z0 M( ~" j8 d
  118. 2 t& I0 c8 k* G5 u
  119.     pMod: asm{  |& s1 M8 \9 K. U
  120.            /************************************************************1 B# p! s9 ]9 V: E
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    ) f- M7 l, u0 k( r% {4 n- F
  122.            ************************************************************/4 \( ~! i! K" \  V' D0 X/ G3 v( w
  123.         mov        fs, bx
    % Q" K3 F$ s! p) U" n% D- j0 X
  124.         mov        gs, bx! l) j7 N9 J5 T( g
  125.         and        al, 0x0FE
    . \# }! w4 s, N$ X" B
  126.         /******************
    ) m% P5 }( A$ w  g
  127.         * 进入实模式      *
      I& L. B4 c) d3 h- M4 s; |
  128.         ******************/+ @; @+ n$ ?( n
  129.         mov        cr0, eax  r/ @# H, Z8 C  L! T& Z
  130.         jmp        rMod9 ?+ ?% s% v/ t, Z
  131.        }
    8 [; w7 A+ l" L! S2 g! a

  132. 6 I, E/ H' Q  X; t3 F
  133.     rMod: asm{5 p! f8 a* s( @) D4 [
  134.         /* ******************************************************************
    0 N7 j' u; v& d3 G/ @! d
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    ( \/ U1 V; {* B6 B6 Q( M
  136.         ********************************************************************/
    ) _  G( v" X  s2 l, v
  137.         mov        ax, 0( a$ k; k7 p9 D9 T. K
  138.         mov        fs, ax
    # R2 H$ b' B1 ?. y! }3 v
  139.         mov        gs, ax: {8 D; W- B% J  ]
  140.         sti2 T( ?( X! m, a
  141.     }
    " d9 Y* W, F; T' ]1 z
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    3 c; r$ }4 c5 Z
  2. ;*    File: DOS4G.asm                                                *: y, k8 @  O3 I) }+ E7 \5 g, t5 |
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    , j8 t7 Y3 U9 l8 x
  4. ;*                                                                   *
    7 I' }% q6 X; v0 x% D$ B! H
  5. ;*    ========================Title===============================   *
    " Q6 m  |6 @8 c9 p2 Z0 k
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *# T) C3 Y! G9 y+ ]7 K4 g
  7. ;*                                                                   *) x! ~: ^" G) L/ c1 N
  8. ;*   ===========================History==========================    *
    / x" D4 z4 B% q4 E
  9. ;*    author: bini                                                   *
    * H% W; |7 l' O* V4 q9 t
  10. ;*      date: 2008-10-08  Frist version.                             *
    / X9 E0 ^. C) \# Z1 _7 Z
  11. ;********************************************************************/ 2 U+ r+ k2 w) W8 T  ?: @0 n
  12. .model small
    9 P( P2 H9 j- [1 p' H3 {% q% _5 X
  13. .586p; G2 |# P# I) R- l& ?
  14. & w4 _) s! w0 I& e
  15. DSEG  SEGMENT   USE16                 ;16位数据段0 U; \' M. R+ B( [
  16. 2 z9 V* ~0 U, p' p& u
  17. DESC            STRUC
    6 ^7 U7 y- |' p( K! k7 b  f) G5 I
  18.         LimitL          DW      0 ;段界限(BIT0-15)3 e" ^+ G; Z3 K5 n
  19.         BaseL           DW      0 ;段基地址(BIT0-15), x' r  m/ {" \/ Z. M7 ]
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    % p' U. y6 J' t9 H6 |9 m% @& n, b
  21.         Attributes      DB      0 ;段属性
    - ?, A% |3 o; B
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    2 I/ k. n, L3 V9 w
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    ) k( c. @7 V6 Q) b
  24. DESC            ENDS
    5 S; W7 ]1 K" t8 _) M- ], d

  25. 1 k. p2 f8 x7 K
  26. PDesc           STRUC
    ( _; {) u' O, E3 V
  27.         Limit           DW      0 ;16位界限
    9 D* U8 Y" h4 F2 k2 e3 W* I0 x5 }
  28.         Base            DD      0 ;32位基地址
    5 X6 t* q1 q( C% x9 @
  29. PDesc           ENDS8 v6 {/ Z! y- o" N2 Y, {
  30. * u2 U7 c1 D! j/ s: y+ W
  31. GDT_def         Label   Fword
      G( b* U/ J, r' F
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>4 y5 m& S2 \2 H6 V) G
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    * E2 u8 W: Q- o4 Z

  34. " H6 ]* A: g- U7 y2 O
  35. GDT_Addr        PDesc   <$-GDT_def-1, >2 Y0 y- |7 \, L. l- s! B! Z
  36. DSEG            ENDS                          ;数据段定义结束
    6 g) L9 D. b8 u* M) o1 y6 s: j( P
  37. ) ~6 b8 O$ h3 J9 T3 q  J
  38. CSEG            SEGMENT USE16                 ;16位代码段
    * E; h0 H( K5 ~6 t# ~
  39.                 ASSUME  CS:CSEG,DS:DSEG# i6 o' y: R, ~/ o+ j/ A
  40. .Startup8 y% k  o/ j* }5 d4 k6 Z
  41.         call      Set4gb
    , H/ e9 r  Y( ~1 J
  42. ;
    ; v  ?/ R, \& s7 R& o2 w; I% Q/ N: U
  43. ;       fs, gs即能访问4GB空间
    : N  x, m) R) O! j
  44. ;       write your code in here.8 u6 k; n# F. A6 B& I; e# {" x6 c
  45. ;( o) v: N7 d" n8 A. v. p
  46.         .exit
    9 G9 O) O! r2 b8 X2 O& e, z
  47.         5 I6 w, I3 t% b$ n7 N+ U
  48. Set4gb          PROC      NEAR
    * B, n4 ^: [* c. ]9 e9 K; j4 v
  49.         in        al, 92h! A+ |# V! x: g: }, `$ b0 w6 y
  50.         or        al, 002- @, Q3 C4 e* B' v8 s+ a' }
  51.         out       092h, al" Z6 K- w/ G: M3 C6 _
  52.         out       0edh, al" y6 X: ~3 y5 W1 q4 a7 X  C' |- o

  53. & d3 s! @4 N: |) i7 n3 u
  54.         cli
    % }( a. l' K( Z' b' y: ^( D1 w! H

  55. ! }- I7 \; l- D# D5 d
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    7 D5 `  s9 q& u) a( ^7 D. w# t

  57.   ]/ A0 ?- f2 l6 g3 f
  58.         mov       eax, ds7 k0 ~1 L8 T% @! [& |
  59.         shl       eax, 46 z' d3 z5 }; Y/ v0 D* l
  60.         xor       ebx, ebx" z9 e/ Y9 J4 P
  61.         mov       bx, offset GDT_def! X  k; I+ ?) b: s: y7 t0 p4 \+ U0 g
  62.         add       eax, ebx
    9 v( ~4 u$ k5 z5 R0 x
  63.         mov       dword ptr GDT_Addr.Base, eax* A( w& v  c7 y. i
  64.         lgdt      fword ptr GDT_Addr
    # o$ V- d, n; \; b, n8 f

  65. / q; [2 H# B0 s7 Z) b$ J! m0 ^
  66.         mov       bx, 8: U. g$ v" b( Q( i" ~( C
  67.         mov       eax, cr0
    : z, }2 t& {, J5 s0 U
  68.         or        al, 1  G! P6 |/ j5 ^) T
  69.         mov       cr0, eax
      d: \' q, p2 `8 _4 Z

  70. , R, W4 X+ z$ u; w5 y, E
  71.         jmp       pMod+ ^8 y% Q7 e: t- l, t  G
  72.     pMod:
    0 q, S2 s6 G. J

  73. 8 W2 s* s; H) i! w" |9 L: h1 r* ~
  74.         mov       fs, bx& s& F0 N8 A0 [, y3 q9 j2 x# v' T5 W
  75.         mov       gs, bx3 P: R4 v) V4 O1 v
  76.         and       al, 0FEh
    , d, R" Q. M2 L2 i: g8 H; B8 Z+ d7 S
  77.         mov       cr0, eax
    % J; d, v) v, [' l# k
  78.         
    % T/ Y6 }5 U0 N8 l- Z: S
  79.         jmp       rMod. h5 Z3 ~9 a5 ^) X* z% M* E$ a
  80.     rMod:
    6 p' G6 d& S$ u* t7 i2 O* O$ E% X

  81. ) L, ?$ B, N* Q9 N9 ]
  82.         mov       ax, 0
    ) V  G  R# [5 ?( J. H" B
  83.         mov       fs, ax
    ' V; T! o4 e  ^/ ~. @. u8 q$ h
  84.         mov       gs, ax$ L# j1 ^+ {4 [8 [: A
  85.         
    5 W' p1 J, Z1 j# r
  86.         ; 在2M的位置测试写一下数据
    / p  [' U4 q% z7 D% v$ |" W3 v
  87.         mov       esi, 200000h3 C9 c" m" y# k' L
  88.         mov       dword ptr fs:[esi], 055aa55aah3 [7 n; s2 G2 ]( W
  89.         ; 用RU去看看200000h的位置是否是此数据....; s$ \% Y0 B5 v& x

  90. / l1 K. t! e' x( r/ e( @
  91.         sti; a) k- J  E& o' L
  92.         ret
    ! L  `2 M. P% i# r* B+ k
  93. Set4gb  ENDP
    & A" f/ y7 C# X- s! w8 d- m
  94.       
    * ?/ ]; v! N4 l) G: C
  95. CSEG           ENDS                              ;代码段定义结束
    / f* M: l+ M6 H, O8 j
  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* f' c% R: Z4 c* j8 \
* h& Q( V  b9 Z- {& z& M1 a1 K
option->compiler->code generation中的option选中, [X] compile via assembler5 L( D5 q/ m* V6 W+ ?' C( ]8 d

0 ]# ?3 B7 s4 W! 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;
& C2 Q3 I7 c0 j) a2 i6 k8 T2 lData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;2 Q' {1 ~1 V. S$ y* k  p; T8 M
- f" `- a7 M+ ]3 Z9 V
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;2 N6 B! p+ [( M+ X3 Q" h
替换如下,
3 S; d* P% D. e' P8 e3 u' ]' E, [Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>, r! Z* r; W3 y6 N; I( O
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
5 |# Q0 F) e% Q- H& P& i1 }( [7 {3 R& v5 L1 V, R% v" U. K1 r, H
GDT_Addr        PDesc   <$-GDT_def-1, >$ |2 e/ Y/ N5 T( V& q
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
) \' h# ^8 o. K" k) R0 eoption->compiler->advanced code generation中的instruction set选 80386
7 f4 c! g/ H  w0 Q4 k6 I" v  b% q/ a% y; X6 ^
option->compiler->code generation中的option选中, [X] compile via assembler
, a9 \+ Q6 ~0 F4 M' k6 f. I1 c
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
3 f$ e! k1 S3 p: n! Q
6 E3 g4 b2 \5 E2 B9 ^8 A   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
) Q: v. d$ d$ e, ^8 z% Y

1 F. W  Z5 C3 j1 H8 ~. {) F2 V我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;1 y8 A+ N1 U7 r1 n0 i
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 05:45 , Processed in 0.059236 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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