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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。, v2 T' V$ P; ?4 G/ t9 ~* d
6 `! I0 h; g2 N- s* h! p
这是C的
  1. /********************************************************************
    , t# R6 w7 ~3 b* B9 a# M
  2. *    File: DOS4G.H                                                  *# G6 U4 W# r  A5 o
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *: u& G3 U# K# K0 K+ j" e% }5 m
  4. *                                                                   *0 r: G* s" N) X" E: J+ A7 B+ t
  5. *    ========================Title===============================   *
    4 i, O/ C3 O/ F& x# G. @/ n
  6. *        这个函数是让系统进入DOS 4G模式                             *  h  f2 z0 s& W, i: q
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    $ G6 v) ^" K! [4 v- y
  8. *                                                                   *
    4 M2 j/ I4 q- Z. \7 _7 F, r, g) A
  9. *       使用: openA20(); set4gb();                                  *
    ; @* {$ }) E2 ~. h; }: G" l; e+ l3 w# r
  10. *                                                                   *2 V3 _9 J: i9 m6 p3 [
  11. *   ===========================History==========================    *% s( p. g; t4 Q* I
  12. *    author: bini                                                   *" z# G0 H9 ~5 Q; T$ @, G5 @% a/ f
  13. *      date: 2004-11-30  Frist version.                             *, I6 r7 A/ c8 A2 B: }, q1 e, a
  14. ********************************************************************/
      f: ~6 y3 e) `! }+ o$ w  S, i

  15. + u8 ^/ @! Z( {; O  p7 @( a
  16. #include <conio.h>
    + a' C. L' n8 Z* {4 I8 E/ N6 B6 f
  17. #pragma inline1 J& V6 M# r3 `! U% X. h
  18. $ C; S# f9 U# e  M& v1 J$ V
  19. /***********************************************
    3 C; A3 J  O6 u$ P6 {  H' o. ~2 F
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *# ^6 _( l- m9 y+ B
  21. *    第二个为一个数据段,没有代码段。           *
    ( k9 {( O7 f+ Z' |" K' r
  22. ***********************************************/
    5 L( r6 w2 a( |6 Q& R
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/2 n' I% z5 H$ |& V* P
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    1 t) I3 Y+ W( A) X& z2 A. K- @
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    $ T' f" R5 i4 W% w
  26.                                       */
    / z& J7 x$ }! g5 J
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )4 p0 C3 T* g1 M- \9 d! A# M# z, Z0 r
  28.                                          最高字节为 base( bit 24~31 )
    5 n8 t7 E  v) R1 W1 l$ Y
  29.                                          ) |' ]: ~+ `3 x2 X4 }" X0 y# ]
  30.                                          属性Attrib = 0x8F92
    . i# K: D+ f( X9 A: t7 V0 k
  31.                                          
    # W$ ?4 ~' N+ l. f
  32.                                              属性位Hibyte低四位为 ' y) W# `0 ^1 G- X* K
  33.                                                  Limit( 16~19 )=F; ]7 u; {1 H% ]  }( G' C7 t; z
  34.                                              属性位Hibyte bit7 为粒度
    & K: z9 V: Z! j; x2 S6 g/ G
  35.                                                  (值1=4KB粒度)
    $ j0 S) E& ?9 f! I# r4 t
  36.                                                  8F & 0x80 = 1/ T3 M5 E2 u' `8 F5 F
  37.                                                  # b( w3 O" C7 Z; M# F4 U
  38.                                              属性位Lowbyte低四位为段类型,值=2
      J8 b* h" P4 T
  39.                                                  表示为可读/写段" |% _8 M7 l6 |
  40.                                              属性位Hibyte高四位=9,bit3=1表示:  U0 x* m6 e2 {! l" J- U
  41.                                                  描述符对地址转换是有效的。, P% S" u* Q6 O  h$ ]* e
  42.                                                  bit0=1表示为:: A- e9 `+ W& r
  43.                                                  系统段描述符。而不是门描述符。
    ; q" @$ U! [4 W& d
  44.                                              # J: Z8 D9 w2 d& j# i
  45.                                          */+ ?7 N8 j( e; t% x1 ?
  46. ( u0 J, v; I8 N8 h6 R2 g: Y! G
  47. /****************************************
    " \* h7 ]2 A# i) E
  48. *    GDTR寄存器, 48bit=6bytes            *4 v2 ?6 r' s# l6 V. Z- Y9 m
  49. *    +-------------------------------+   *
    . L# L4 o( o8 s4 D
  50. *    |   32bit基地址       |16bit界限|   *- _5 u: R0 B8 e
  51. *    +-------------------------------+   *2 F) C0 i* t( M5 d
  52. ****************************************/1 O" a4 j/ v6 o0 |9 c8 v2 P
  53. unsigned char GDT_Addr[6]={0};
    ) d2 K: ]# j' d
  54. & H9 g& J3 ^+ K! h1 k
  55. /****************
    , w( D& A& h. ~0 o" ?
  56. *    打开A20门    *7 b- P6 r4 r4 N' j5 e4 {. H! C& @
  57. ****************/
    % B4 [6 h& D7 Q) {6 }, ]8 d
  58. void openA20(void)
    6 G. t7 I' @; U' I/ U
  59. {
    9 k6 B: ^/ _1 r8 W
  60.     asm{
    1 Z8 v+ J4 w4 B7 Z, M
  61.         pusha* w& h: C4 C1 O1 r1 B0 I) i1 z3 }
  62.         in         al, 92H+ |' {) F5 L% y+ \& x) Y: G
  63.         or         al, 0x020 G/ k  ?, H( S/ X0 q. N
  64.         out        0x92, al/ A1 U% a& B5 v, q, p: J
  65.         out        0xed, al# B, c- Q# N3 D2 n4 }) r
  66.         popa
    8 T% S6 ?# Q) i- |3 s) c" g# T
  67.     }) |8 `0 x! W! Y( i7 G
  68. }
    * \) }; h: |: M  E: z+ m

  69. % e# m, K  i" V% K: b. \6 g
  70. /***********************************************
    0 B( c; d$ X' _: T! ~: n2 I( J
  71. *    函数功能:进入DOS4G                       *
    1 z0 |* E9 z% Z) h0 |3 E8 W
  72. *    ====================                      *7 K0 `( e  |$ \- ]; b
  73. *                                              *7 F/ P8 E) \7 t; W* A% n* C. b/ X5 d/ m, i
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    3 X% \' ]5 Q2 l( i
  75. *   如:                                       *
    / m6 s1 b: a9 T8 Q. V, a
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *  m) X8 }$ I+ D- [: f# M$ ?  G
  77. *       表示为 2个GTD                          *5 @# k7 z( ?: K/ n4 z
  78. *                                              *
    3 X9 A4 J: m9 @3 j$ T
  79. *    选择子为所在描述符内的字节偏移。          ** d! W/ d. M" z9 @3 v8 {9 ~
  80. *                                              *
    2 v, f  E- D6 T: q" X2 M3 l
  81. ***********************************************/( k  H9 O0 f2 W! r, j7 P, x6 W
  82. void set4gb(void)
    4 {+ D! X; m( q' L+ y9 m1 z6 ^
  83. {5 _5 z  `1 H  t! X/ d+ c$ X
  84.     asm{
    " i# s. E" ]9 h" H8 h7 j0 N; \
  85.         cli
    , S) P* l/ P" J7 Z
  86.         /****************************************! t/ J: a( J! a5 o6 X$ N9 {% f
  87.         *    GDTR寄存器                          *
    / l4 {: q3 s! x
  88.         *    +-------------------------------+   *
    ) U7 {/ p9 m+ d( j
  89.         *    |   32bit基地址       |16bit界限|   *
    + ~* p& l! z8 S/ P; Y" D1 W) b. i
  90.         *    +-------------------------------+   *
    ( I' Q8 [( ?* k" q
  91.         *****************************************/
    " h! m; C& s2 j  ~' I: {" |
  92.         /*********************
    ) p9 ~" T  t; [. ?$ K/ c: J1 G
  93.         *        得出段界限       *% A& \+ p( h) _) C8 b2 O
  94.         *********************/' U+ N4 w( y7 ?& r# e
  95.         mov        word ptr GDT_Addr[0], (2*8-1);. G( T1 E' k% @" o8 u' o5 \
  96.         /********************************************
    5 W& i, p. M: X& i5 ^
  97.         *    计算GDT表的32位基地址,存入GDTR        *' O# T0 d% G2 L# X; l- O, g& k
  98.         ********************************************/9 u9 C$ C1 u( L5 P
  99.         mov        eax, ds1 Q) `# v  ?4 T/ x
  100.         shl        eax, 4
    ! q) |" o' m; I& R
  101.         xor        ebx, ebx
    7 r4 v  U4 s% |. D
  102.         mov        bx, offset GDT_def
    : h. S7 {$ d' X- D" U3 Q$ d' S
  103.         add        eax, ebx  m+ {2 R4 ?0 Y1 A3 f
  104.         mov        dword ptr GDT_Addr[2], eax. b9 @3 t* i& X2 O
  105.         lgdt       fword ptr GDT_Addr# g+ u' C  R9 K4 A, I0 N& C
  106.         /********************/ R1 f0 ?3 v  x
  107.         *   选择子偏移      *
    , r  S7 e( P% o! ?3 c  i
  108.         ********************/
    3 c. Z; N0 K6 E4 F' I1 I2 N
  109.         mov        bx, 86 t% e5 B; R1 |5 i1 I
  110.         mov        eax, cr0
    ; x3 p! X# h% |: B: t3 f
  111.         or         al, 1
    4 B# s/ A7 X) V% s# `2 W
  112.         /**********************" L. _# x! ~5 H+ l' R* q
  113.         *     进入保护模式    *
    # M) o1 u  K0 I: o# J
  114.         **********************/' q9 P( P* F9 q8 S) `6 t2 C* m* X3 F
  115.         mov        cr0, eax. `+ E/ M. a- B% ~( c0 o- [
  116.         jmp        pMod, {) Z' T- q9 C& t
  117.     }/ X' u- m$ S" C9 A3 D; _, b  @

  118. / I4 |( {0 z; l* D% x
  119.     pMod: asm{/ N+ x5 m: a+ l: f
  120.            /************************************************************8 c7 @; B% F1 A2 d
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    0 \3 [9 C. s: M4 g7 W* F: Q
  122.            ************************************************************/
    ) J" N  x# Q4 x7 L& j& V
  123.         mov        fs, bx
    6 D" L5 n; P- T/ i. G
  124.         mov        gs, bx7 h, J) k. E- A5 ~: t8 {- U
  125.         and        al, 0x0FE
    7 C, N, J7 _9 K; ^
  126.         /******************% @0 D" P1 ^' g. X! H
  127.         * 进入实模式      *$ D' I! j& r4 t
  128.         ******************/
      h+ e5 k2 [4 {6 ^7 X/ @
  129.         mov        cr0, eax
    / j- R7 T0 Q: C+ o9 Y* v
  130.         jmp        rMod
    ( E$ i: q0 f1 Z/ \
  131.        }7 S* s, g% P/ H7 ~
  132. 0 m4 }" P! e  x
  133.     rMod: asm{
    ! c& T, z5 d2 F- r1 G+ f/ x  L3 \
  134.         /* ******************************************************************% M4 a. U' U8 M- T1 q( c& E
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    - ~! |- t: |2 n9 h8 Z9 v; w+ k% f
  136.         ********************************************************************/
    9 C! T) t7 a3 G: X
  137.         mov        ax, 0
    3 j1 L- N7 S0 a1 Z1 a1 T/ C- p
  138.         mov        fs, ax) S1 O7 [* p/ Y& M5 u! c) g) O! p: g
  139.         mov        gs, ax
    3 h) M& p- l3 \0 ?  T
  140.         sti3 c  d- E" H+ H5 H9 q" }$ P
  141.     }5 o: K$ d  J+ t  u
  142. }
复制代码
这是asm的
  1. ;/********************************************************************! t0 P3 ^7 v. p$ g$ {8 I$ r2 D
  2. ;*    File: DOS4G.asm                                                *1 a( _2 H9 K( V2 F1 c6 p
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *; Z* ?5 z/ q0 w% B
  4. ;*                                                                   *
    $ M+ s0 W$ s, _" j& U% w
  5. ;*    ========================Title===============================   *
    & B! e+ F# t) a) f5 O! d+ K
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *  f+ g: C2 S& U
  7. ;*                                                                   *
    ; D. h8 J/ d0 m% T; q& c
  8. ;*   ===========================History==========================    *
    8 G! ^6 H! P8 t8 k: w* Y' k
  9. ;*    author: bini                                                   *
    # o- ]4 B; C- E7 v, ]2 U
  10. ;*      date: 2008-10-08  Frist version.                             *
    3 F. n; u( {, m9 {
  11. ;********************************************************************/ 0 C7 c* C! {2 p7 {1 Y
  12. .model small# ?  X, }% G" L4 Q' b
  13. .586p
    $ t! Y% v! h8 C9 _

  14. . P: M/ u2 ]8 ^7 m% h
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    8 h3 W$ A8 F; j' I9 W( R% H
  16. 5 L; g7 \( g/ P' Z. v8 J) _
  17. DESC            STRUC
    ! T% i6 b6 C3 M. K2 Z0 k
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    : i) u, d/ N% V
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    9 E4 D) }& K8 B, i' k, r& [" D* N
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    $ m; P% a5 t! V. ]$ Y
  21.         Attributes      DB      0 ;段属性5 o8 M0 F2 f3 \! z) n0 z2 M& P# R
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    3 g+ b5 j. U% L2 M! z; l
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    ' u5 e$ y, d, h' w3 p0 K) M+ M8 a
  24. DESC            ENDS
    ' Q3 F" J! \- f
  25. ! N+ q$ f: W: V9 Z+ V* b, ~
  26. PDesc           STRUC& k3 F# e0 t' `1 w
  27.         Limit           DW      0 ;16位界限
    5 m4 [+ m  G( I- f- u# B0 f. K
  28.         Base            DD      0 ;32位基地址1 t5 d3 u: m, b1 Q3 U. ?+ g
  29. PDesc           ENDS/ S7 @% h. y4 C* z# N
  30. * K- S+ ~6 \* p3 @: S
  31. GDT_def         Label   Fword
    ( z" l1 D0 v1 R) X5 M. ^
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>* |1 F) y6 R: a+ O* a: V
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>& C( e5 A" Y. b0 @' c

  34. * @& J3 u7 C" x6 X  c5 e; [
  35. GDT_Addr        PDesc   <$-GDT_def-1, >  A+ @9 n! _+ {* E. I
  36. DSEG            ENDS                          ;数据段定义结束
    3 P1 [) |) l" C; G  B

  37. 9 {3 S( {% K/ r) j+ f
  38. CSEG            SEGMENT USE16                 ;16位代码段
    + L8 s$ X: s& a" l) @* p2 `
  39.                 ASSUME  CS:CSEG,DS:DSEG
      @( [/ `$ a# T+ L7 M
  40. .Startup
    $ H, s7 c; H! u5 s: ]
  41.         call      Set4gb- d3 m$ r$ e: P: O/ j
  42. ;
      f0 I3 N* ?/ n  d& f
  43. ;       fs, gs即能访问4GB空间
    5 r; A; P$ u4 E5 O* l# @
  44. ;       write your code in here.7 P8 @: y# C1 v( g: g
  45. ;
    * G, k8 M6 n5 L
  46.         .exit
    ) I. c, _: K/ z
  47.         + ^: q% r8 d/ E: H; Y
  48. Set4gb          PROC      NEAR  d9 o+ W/ d* E4 r& p# A' C' s: {
  49.         in        al, 92h( v0 r) x. B# T
  50.         or        al, 002
    4 e: R4 d# u+ h' f+ i
  51.         out       092h, al
    ' C, i, K# h- s7 K6 U
  52.         out       0edh, al9 L8 Y* a: N& ~8 {

  53. / ^1 j6 r+ \" ?0 D4 X5 L
  54.         cli
    " {) H  P5 }7 a/ w

  55. 3 P) D; i7 g# c8 D4 ]
  56. ;        mov      word ptr GDT_Addr, (2*8-1);. W6 ~, v9 Z8 t- ~/ h/ p
  57. % n" l/ S; x" I2 ]
  58.         mov       eax, ds
    1 @* }4 b, ^( d. p- \, I
  59.         shl       eax, 4! Q9 N! H* {  i$ @. U
  60.         xor       ebx, ebx4 p2 E# B& W; P' _5 u! _+ ~
  61.         mov       bx, offset GDT_def
    2 K+ V- Q# S! i* t
  62.         add       eax, ebx# T) z/ r# ~9 T, M% N
  63.         mov       dword ptr GDT_Addr.Base, eax
    2 V* c/ O" Q) i1 S
  64.         lgdt      fword ptr GDT_Addr
    ' {& z( ]4 W+ T# h1 Y9 L9 I

  65. " M- `# T' C8 ~, p0 b
  66.         mov       bx, 8* J; e5 |  ]* F3 q% `2 [
  67.         mov       eax, cr0
    ; h+ o0 S' ?* O5 k2 s4 I& y2 F0 p! j
  68.         or        al, 1
    & g* s. S- j1 J6 Y
  69.         mov       cr0, eax
    ) t( K" t4 }% l$ y

  70. # S, o: @9 E! O/ s7 U' B) \* l  O
  71.         jmp       pMod
    * P6 u# l! Q9 s; `
  72.     pMod:5 p4 m6 T. v% T; H; r

  73. 5 V8 K4 Q* K# s& s5 g+ `
  74.         mov       fs, bx3 L  L& t5 X3 T* E. ~1 q" Z
  75.         mov       gs, bx
    1 ]1 }. R/ ^  u+ X! y
  76.         and       al, 0FEh
    6 J3 c2 R6 a6 n3 d$ L
  77.         mov       cr0, eax/ [$ _% j1 s& z- I  D7 ]# B; P
  78.         
    9 i5 P, W6 k4 q8 J: v+ e; W) z7 M  }
  79.         jmp       rMod
    1 R5 m8 y  R6 T6 q/ n7 g1 f
  80.     rMod:
    4 ?( K& E! G: p: b2 o
  81. " f2 _& K$ O7 D6 }* ~# M
  82.         mov       ax, 0
    8 s2 z: ]3 P. z
  83.         mov       fs, ax
    ) D4 ~0 Y; y) n5 l# @
  84.         mov       gs, ax
    % L% O/ M0 z, m0 B
  85.         
    : a8 T; `0 A) L- ]; A
  86.         ; 在2M的位置测试写一下数据4 B, d3 |8 l5 p  b8 S/ s3 o/ }2 W
  87.         mov       esi, 200000h
    ; y3 {- ], E- J6 ~* h+ A- ]
  88.         mov       dword ptr fs:[esi], 055aa55aah
    ' D1 C4 |; H* `- d: B
  89.         ; 用RU去看看200000h的位置是否是此数据....
    ( F6 e0 m. }6 s) F0 K

  90. ) B: [6 E- g- {! x7 \5 H
  91.         sti
    2 [; o* F2 D6 `5 C8 N, V
  92.         ret
    # {2 c% T) j1 c2 V5 |( a3 D
  93. Set4gb  ENDP6 G& t0 X  g4 Q. _( n
  94.       
    & E! `9 u. a4 s8 {+ P
  95. CSEG           ENDS                              ;代码段定义结束5 J2 Z) T- I+ L1 @9 a' n- v8 [
  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
3 k, Y1 c/ t' D: c4 N9 H  T7 U! w; O+ m0 X" G
option->compiler->code generation中的option选中, [X] compile via assembler8 l. x7 N3 s% v9 t
# l5 y3 z5 y  m# ^1 f$ 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;& F- I, R8 Z$ Z  q, f
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;+ j2 l% a3 D3 _% s
" L, @  N6 c/ g# @' S2 R6 t( ]2 G
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;0 s* b9 k1 e9 f6 I' ?0 l
替换如下,
2 C9 I! x# B/ ?: c! V( I8 sNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>7 L9 l! c- l5 x* o1 j; o
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
: l* Y5 S/ z4 W3 y$ A; G. Q* _8 m% `  J% j! v- m+ o/ p! c# E6 Q2 T6 e5 t
GDT_Addr        PDesc   <$-GDT_def-1, >5 \% U1 `, [( l  j# M4 b3 K
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
8 P/ O" ^1 v+ foption->compiler->advanced code generation中的instruction set选 80386
" m0 X0 ]6 u6 ^* E6 w6 V1 f+ w" t' U( S0 ~) K
option->compiler->code generation中的option选中, [X] compile via assembler
4 ~- O9 f- x; P" }$ y  E3 [, n
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 3 L( A5 ]' \  }; f6 f* E

2 h! q6 t3 Y! E% @/ Z   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
1 e: p( a" r0 A  O' c5 M( r7 R

8 w( b8 ^) o4 y! Y8 O, Y- h我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 20:57 , Processed in 0.073384 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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