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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。( r* F8 c. j5 i6 C8 @7 a! K
( q' }" D9 A6 B1 L8 o( e. _1 ?
这是C的
  1. /********************************************************************
    8 N  ]# X+ ^* R: a# G4 D+ T
  2. *    File: DOS4G.H                                                  *0 }& L5 _: }: d" B0 i2 [' g& ?1 m( d
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *. X% n2 F% v) b2 l3 R% Q9 ~
  4. *                                                                   *7 y5 s6 n# T- P
  5. *    ========================Title===============================   *
    3 K5 J$ M. T! x
  6. *        这个函数是让系统进入DOS 4G模式                             *8 d' p2 W: H( t3 [$ l& O, {4 k
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *) |, k! x, X6 A2 E+ l$ d
  8. *                                                                   *
    1 a$ L5 M! H6 ?  h1 K- I; M: a
  9. *       使用: openA20(); set4gb();                                  *, o: n9 j* l8 k7 |' k6 S
  10. *                                                                   *
    1 N- _: u6 p5 V1 U- u1 P( K4 P+ T, b
  11. *   ===========================History==========================    *
    4 S# o0 V2 P/ d) i5 o+ U; J
  12. *    author: bini                                                   *( Z% G" Q% M1 G& _# o( Q6 S" _9 p
  13. *      date: 2004-11-30  Frist version.                             *
      f+ Q+ w4 X% }
  14. ********************************************************************/5 k  m. F5 S* P) U
  15. $ q1 L2 g; S5 ?- U2 D1 `
  16. #include <conio.h>
    8 v3 B$ G; V8 x2 W
  17. #pragma inline
    & q& Z2 R2 L! \6 x) i9 W6 t
  18. ( K0 t$ i4 I! @
  19. /***********************************************1 k3 k2 t, U! i  ]$ P! O
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *8 g% n/ ^) q4 J) D
  21. *    第二个为一个数据段,没有代码段。           *
    8 P0 {$ V6 p. g2 Y5 @8 r. _
  22. ***********************************************/
    7 o9 v- k- D" D/ j; ?  o
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/8 m& {4 Y9 u' B* {7 _) m
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    4 W2 X; @5 k* L' M3 Y! i
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF 5 d0 A3 J9 @2 G4 W& b" u! a2 N
  26.                                       */  }+ b, P, L8 {/ M- u  ^
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    & G4 A9 T% c* D# I# f
  28.                                          最高字节为 base( bit 24~31 )4 A- L" |) I$ e8 L* s. w
  29.                                          
    0 T' W+ `1 r8 L( A" m5 F4 i  K# C" O4 v
  30.                                          属性Attrib = 0x8F92( R% y% J7 S* d
  31.                                          
    ! Z0 ~& C$ F* \9 U0 h: ?
  32.                                              属性位Hibyte低四位为
    9 }9 c( X, I* G/ }2 E: y
  33.                                                  Limit( 16~19 )=F
    ' E2 c! j6 L6 O. z/ z6 V
  34.                                              属性位Hibyte bit7 为粒度
    $ r+ r5 {  u6 _+ e* ~$ m! y
  35.                                                  (值1=4KB粒度)  n) {' @4 d7 r6 g& h, ?8 J# l
  36.                                                  8F & 0x80 = 1- O5 z2 F3 J1 Y3 {" J* w
  37.                                                 
    7 k4 r. l+ t9 m* r4 t1 o
  38.                                              属性位Lowbyte低四位为段类型,值=25 ]1 d, e2 z# Y! X. ?
  39.                                                  表示为可读/写段" O. K6 F! D0 q# ^" O  D2 u: |8 S
  40.                                              属性位Hibyte高四位=9,bit3=1表示:8 U, b& k1 s, F( u
  41.                                                  描述符对地址转换是有效的。
    " d) n: B/ Y- \
  42.                                                  bit0=1表示为:% t9 S; Z! {/ h* j' p+ L. B( t
  43.                                                  系统段描述符。而不是门描述符。# [6 i! a5 e- b7 G- ?: j
  44.                                              * F2 i) v# x; y9 d, H
  45.                                          */
    ( C- H* r+ E' d! K, I

  46. / O' p7 m7 P) J* o6 f- W% a
  47. /****************************************; k. C; S6 G: l% `  W( A0 x, r
  48. *    GDTR寄存器, 48bit=6bytes            *, d7 \6 U4 V: _- c
  49. *    +-------------------------------+   *3 D5 k# E& i) D/ n& ?
  50. *    |   32bit基地址       |16bit界限|   *
      w# m( p/ C& B6 \
  51. *    +-------------------------------+   *, O% _, l$ H. w" D6 h5 Z4 J
  52. ****************************************/3 a! v" V0 i7 G+ Q# V2 ?) X& B! W
  53. unsigned char GDT_Addr[6]={0};
    2 Q& i# @. q9 m
  54. : C; r  f8 d+ B& h6 ~
  55. /****************- ]0 n9 ?- y, m4 ~" c2 C9 _
  56. *    打开A20门    *
      B8 D+ _. x2 y7 L; W# D' X
  57. ****************/! J; D# ]% k  j5 g% Q" M
  58. void openA20(void)3 j% E* h1 W  C
  59. {
    / a% ]& _) [4 z) R6 _: B
  60.     asm{
    9 g+ i7 i+ U1 ~5 ]9 f, d7 l7 ?
  61.         pusha- |! c6 j% c2 `2 M* K
  62.         in         al, 92H
    ' G& j$ H& f* y; p
  63.         or         al, 0x02
    : U7 A+ I. B! S2 e  H
  64.         out        0x92, al
    ( i$ p" N6 A% j- P* z9 D8 u
  65.         out        0xed, al; y8 G7 q& ^+ m- [! C: K
  66.         popa
    8 n% ~# c# y8 C$ m- U, L
  67.     }. M! @7 `% [1 T. h' _; D
  68. }
      {- b& r/ N. ^

  69. * z5 `$ g. e( d0 a, K3 @
  70. /***********************************************+ V  x" G* f, A  c- x
  71. *    函数功能:进入DOS4G                       *
    0 h# a4 I6 i, w+ P+ s. Y( E
  72. *    ====================                      *
    , H3 \8 q' h+ G6 i  M% j2 q1 q2 q
  73. *                                              *7 J9 [: o% \7 j
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    7 q! Q' C) n# ~3 r; p5 \
  75. *   如:                                       *
    - r0 z  T6 s% u1 U
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); ** j' T" L8 g. o( o3 j4 A
  77. *       表示为 2个GTD                          *9 B% R! J3 }. ]9 {6 Q, R. Q
  78. *                                              *
    5 t) m; I- a% d+ W! y3 m
  79. *    选择子为所在描述符内的字节偏移。          */ A/ R5 u' Y5 s1 Z1 P, g' J
  80. *                                              *1 r. s# T0 Z2 `- o! p, i$ p5 x9 W' t
  81. ***********************************************/# \: D/ y# X( ?$ M( Z
  82. void set4gb(void)' @; V% Y) K3 s# o& A1 c, U5 l8 e
  83. {
    8 c- n# c7 h0 w- v; c$ W- v
  84.     asm{
    + }7 [3 f% ~( s9 y! H9 Q6 t: |. ?
  85.         cli
    / `' u  e) [# O; n6 S+ w
  86.         /****************************************& {" [8 v& H- @8 \2 W0 G" i
  87.         *    GDTR寄存器                          *
    9 h4 c$ c) }9 v
  88.         *    +-------------------------------+   *7 A9 j) s% d0 q8 t- j
  89.         *    |   32bit基地址       |16bit界限|   *2 K% i- M2 o# j4 v3 u& |( _% m
  90.         *    +-------------------------------+   *- F  }- `4 t& v# n) q1 N3 h
  91.         *****************************************/% i# w1 ~# v9 _, L
  92.         /*********************) P( ]/ [7 H  r6 H& j
  93.         *        得出段界限       *
    2 c. K+ z, }4 I, g$ R6 U
  94.         *********************/
    8 [. l! J2 v! ]6 q
  95.         mov        word ptr GDT_Addr[0], (2*8-1);& x; k8 S: _: ?; l$ `7 \! i1 V
  96.         /********************************************
    ( b8 J5 r$ z" G- p
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    9 [( f; E/ Y' V9 w" I  h9 r
  98.         ********************************************/, X8 J6 b+ I- N: P9 m8 Q  R
  99.         mov        eax, ds7 n- I! n  }1 @
  100.         shl        eax, 4
      Z) [6 E0 Z3 B' C
  101.         xor        ebx, ebx7 D3 t% H* R  E" Q
  102.         mov        bx, offset GDT_def; f5 H% H! D' M
  103.         add        eax, ebx% K" \- i4 [* J0 Q* ]& w0 s# l
  104.         mov        dword ptr GDT_Addr[2], eax
    6 g+ W3 A, u# f8 c; R1 w! X
  105.         lgdt       fword ptr GDT_Addr
    4 _7 j) Z0 ~! k+ L0 j3 ^7 N2 Q
  106.         /********************
    , o7 w( m! X6 Y4 k: |! ~) ]8 [
  107.         *   选择子偏移      *0 F& a8 }; C$ ~6 U/ ~+ X
  108.         ********************/( D/ m) D8 H6 C- l( T9 N
  109.         mov        bx, 8
    ( j* J9 _- n% l# x
  110.         mov        eax, cr0
    8 c2 S5 w1 h( {! n0 n
  111.         or         al, 1; a% Z& s: _) {% \
  112.         /**********************
    - p/ Y& g+ {4 F6 r2 X
  113.         *     进入保护模式    *
    , Q3 k' b+ K! v) t$ n
  114.         **********************/5 K' d2 M2 u& y; a
  115.         mov        cr0, eax3 d; N; G# ?/ k9 e2 F
  116.         jmp        pMod
    ( K. E9 e% c, O
  117.     }
    5 P, a7 x7 X- a5 W# Z
  118. ' r5 x( D5 t. n% @
  119.     pMod: asm{
    & ~! v+ h4 y( d0 K4 q2 p3 }
  120.            /************************************************************
    " o! x. f2 F6 R8 o
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *7 S1 ~1 U7 O8 S
  122.            ************************************************************/
    - w: A& _4 R8 n. J
  123.         mov        fs, bx
    ; \. Q1 K2 f5 Z
  124.         mov        gs, bx' a) g( y- R6 n3 P& m3 V
  125.         and        al, 0x0FE
    $ `' n0 e% I% r% x$ P. u
  126.         /******************
    2 t& N" l; k& h- `; T7 v
  127.         * 进入实模式      *( B% \3 E. ~! P1 Z2 T
  128.         ******************/
    ( Q* x6 |1 z$ F! z
  129.         mov        cr0, eax
    3 M/ z( }+ o$ J* o" _
  130.         jmp        rMod
    : S8 M! v8 s7 [( s& x
  131.        }
    $ H+ D9 X% `1 B. L' F: F0 q$ N: ^; u

  132. . h/ H, n. z, z& Z& G
  133.     rMod: asm{+ G. C7 e7 Y2 ~+ P$ \4 v
  134.         /* ******************************************************************
    $ n( c" ?- z8 d. {4 J8 X! v- b) h
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    8 y* D5 E  N6 m6 t
  136.         ********************************************************************/
    * j) |/ k: @! Y  Z' t  H  _- P6 @1 Y1 `
  137.         mov        ax, 0  n. R0 g* v) M" ]( |
  138.         mov        fs, ax
    1 a2 n; o( T+ ?
  139.         mov        gs, ax& n% o( @" U/ C
  140.         sti
    ( Y  U. M( ]; ?3 d1 ~3 D) @# y& f
  141.     }* m& |0 ^+ I- V9 k0 @1 I5 `0 W
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    8 t9 u; C# ~, p/ D/ K1 c
  2. ;*    File: DOS4G.asm                                                *
    ; ~  {1 e8 f3 T: a  @
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *$ s' Z$ u0 Z9 \# `' n+ p: {
  4. ;*                                                                   *8 h7 H  G7 P' {5 W% w
  5. ;*    ========================Title===============================   *
    6 {! x, S2 W" D* x6 I: \2 V: Q% o
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *+ T. E  l4 K6 n$ F( t" b
  7. ;*                                                                   *0 `4 E7 K9 _1 q5 T6 M: r
  8. ;*   ===========================History==========================    *; ^6 e3 \) [! d& J- t
  9. ;*    author: bini                                                   *
    " z0 }/ B& M  w) ]" t5 V  Q
  10. ;*      date: 2008-10-08  Frist version.                             *4 k! \& _  t* ^3 d: t
  11. ;********************************************************************/ 0 V- G4 p; A$ r" |% R" \/ `/ t/ j
  12. .model small
    8 a& E3 q% p$ D# f, H& ]$ j7 R
  13. .586p" B/ Q& B+ W0 y

  14. + X( @" \& ^% m: g+ Z4 X& R
  15. DSEG  SEGMENT   USE16                 ;16位数据段* i/ H8 J8 `3 @" R5 u# ]$ P6 P4 I

  16. : N# @+ M* W9 }4 M% v4 k$ @9 F
  17. DESC            STRUC5 c$ Q" E. ~+ V7 C
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    0 k; Y4 Y5 G4 }: U! A% F
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    6 r- Q# J1 \5 m) D
  20.         BaseM           DB      0 ;段基地址(BIT16-23), V0 u% B5 `! f& d
  21.         Attributes      DB      0 ;段属性
    . I2 O" f# b% x  }
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    $ |( M4 ], F9 w3 Y
  23.         BaseH           DB      0 ;段基地址(BIT24-31), c  C2 c7 ?2 P; {' Y( n0 e
  24. DESC            ENDS
    + X- O! J0 x* w5 ~/ ]2 v1 a- n
  25. % O. ]0 N- K! @- O+ n
  26. PDesc           STRUC
    # x7 @) o$ s( X1 }
  27.         Limit           DW      0 ;16位界限
    9 ~& k7 X4 q% x
  28.         Base            DD      0 ;32位基地址
    ; t# b" y+ _" w7 ^1 A- }2 T
  29. PDesc           ENDS7 G2 y+ p  E1 D3 v/ |1 I
  30. ( U+ i+ h; e$ z' M, Z0 r
  31. GDT_def         Label   Fword
    4 [* H2 h( E$ ]
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    7 q3 ~' K( ~, Q; `; u" K
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>1 `' m" U3 C0 @) f" Y

  34.   e6 |5 b$ Z) z* O
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    3 `% r1 ?3 P5 H
  36. DSEG            ENDS                          ;数据段定义结束2 v; I  B4 p3 D
  37. % D( M6 N0 s5 H  q( P1 o6 J
  38. CSEG            SEGMENT USE16                 ;16位代码段
    9 A% F  ]3 ]" Q! R! m
  39.                 ASSUME  CS:CSEG,DS:DSEG$ X' x, H6 `' v4 U8 r! A4 V. S
  40. .Startup  |1 F; \  ~# ~1 \3 u
  41.         call      Set4gb0 f) X7 h/ X8 u- y3 v
  42. ;
    + {" x3 N5 ~3 ?8 u: j
  43. ;       fs, gs即能访问4GB空间. k8 }& t; Y. T3 c: V
  44. ;       write your code in here.
    ! r8 J. t4 @5 l
  45. ;1 B& Y/ f/ n7 J& s7 u
  46.         .exit
    : z. a# X- x& t
  47.         
    4 z' R* y# O. k5 I: g8 e* Z+ R
  48. Set4gb          PROC      NEAR
    / [0 Q1 ^  e# L' f* y' N
  49.         in        al, 92h
    / j# q' ~  v- ?% C9 d- {8 y
  50.         or        al, 002& q# D8 G* M0 s' X/ _
  51.         out       092h, al) V4 F$ ^( S' N' R# l. Q
  52.         out       0edh, al2 i+ T1 l4 X+ k& P5 h
  53. # f3 _; t' Q& }
  54.         cli
    - Z0 y3 i$ b! ^. u6 r2 g
  55. ! R: g) b9 G- G. Z7 J7 ^
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    ) U% y8 k5 r, V  W% @

  57. + f$ T( P% P7 I6 m
  58.         mov       eax, ds' L1 |3 V2 E$ M6 z+ l5 \
  59.         shl       eax, 4
    % k! [( t3 o0 t7 Y1 [' f. x6 R
  60.         xor       ebx, ebx
    % H  i" @! Q& P7 p
  61.         mov       bx, offset GDT_def8 r7 V" m& t" J' v; g& y$ g
  62.         add       eax, ebx  p; L+ a* S* j
  63.         mov       dword ptr GDT_Addr.Base, eax- z# E8 y4 }+ j5 n! _* w) |) `
  64.         lgdt      fword ptr GDT_Addr$ [: F+ b4 g9 |5 P( w" p

  65.   _2 f! `; d: y
  66.         mov       bx, 8
    # w: u+ i) p" y* Z
  67.         mov       eax, cr0+ J5 K1 Z# s+ J; C+ \% d
  68.         or        al, 1
    % c% I1 Z1 y7 o+ ~
  69.         mov       cr0, eax3 x8 I4 i1 W- R' b
  70. ( h: u. b) d' a) z
  71.         jmp       pMod
    % }  b  P9 s4 ]6 Z
  72.     pMod:; e6 J+ K8 ]* j8 [

  73. ' ]' Z1 O4 P7 L
  74.         mov       fs, bx. B* \! a; b$ J$ e( s
  75.         mov       gs, bx
    6 @7 g4 z; |5 r$ I3 A" ^- y. Y
  76.         and       al, 0FEh
    ( Y; B% U# `' ]  j7 C) K% H
  77.         mov       cr0, eax
    0 r+ L% j0 d7 c6 t$ J) L% @
  78.         7 O# D6 q* ~9 n; U7 B: s
  79.         jmp       rMod
    & _! j1 O' v5 N8 y# I$ u7 N; l
  80.     rMod:* ?3 B+ |; G6 p# o( H7 N& E) t9 i

  81. # J/ m5 w# c" b7 k" ?0 i: ^
  82.         mov       ax, 0: b' q+ S. I8 e# a
  83.         mov       fs, ax
    / y0 E2 b: Z4 [" M
  84.         mov       gs, ax
    - Q" H, p$ ~4 U# C5 N2 ^
  85.         ; ]; Y; b' Y  a4 S5 a8 V
  86.         ; 在2M的位置测试写一下数据6 ^% q) G( ]0 R' D/ ]8 L0 `. i: c
  87.         mov       esi, 200000h
    9 g/ L; a4 n! U* V6 D6 p! O
  88.         mov       dword ptr fs:[esi], 055aa55aah
    % d0 N. p" }$ ~4 k/ K3 e
  89.         ; 用RU去看看200000h的位置是否是此数据....0 Y; _- C: s  y6 {" \* D2 G
  90. 1 `! \, Z5 x1 O+ ~! w& J. Q+ b( t$ W
  91.         sti& t8 _; Z- k" u0 Q! I) t
  92.         ret+ S) H$ @) d' O5 b2 y6 P; l) n
  93. Set4gb  ENDP6 v- ~: J; ^6 {, i$ e# m/ P' a
  94.        + i" w4 C& w/ W; X& w3 K8 Y# _
  95. CSEG           ENDS                              ;代码段定义结束* i! X: @$ @6 X( e& \$ ?
  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
! p2 O. v: _; k" U. e* T* T6 S. g) @+ g1 `% i( J7 F1 l7 S
option->compiler->code generation中的option选中, [X] compile via assembler/ u5 N( ~- i4 r% x( ]; B; d' Z

% X( |# M8 K2 {0 ~, |+ Z$ h[ 本帖最后由 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;
1 \. a1 [" R! E: q7 P# {* f1 GData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;8 @3 N- R1 D3 O# [; T

) c0 m, |1 M: h+ m" Z' @% CGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
* V9 ]9 Z* T( b, s1 |! M+ v 替换如下,
/ w+ C0 Y6 ?2 ^0 f" zNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
) p3 u& S, s( _) f" o2 @Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
: _& N$ G) }8 M1 o. B0 U7 t( G: I
* u/ `- A& K! @' e" Z* jGDT_Addr        PDesc   <$-GDT_def-1, >
' `9 o- G2 X/ A2 h8 G% Y( W这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
* [; S: |5 S1 e+ ^: j. D% }& Roption->compiler->advanced code generation中的instruction set选 80386
, i  v$ ~( n1 G3 P% K! ^$ @
6 z$ \! O8 a; C" E0 S0 U- E, W. [option->compiler->code generation中的option选中, [X] compile via assembler

( s4 x0 }2 j, k) s   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
- x; {. t, v, e' V
% N$ s, I" w8 w   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
7 h  ~5 z8 m9 B

8 t& j5 @+ q7 D* C/ I7 q我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 12:48 , Processed in 0.087133 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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