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

DOS 4G big real Mode Demo code。

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

6 V% z) f, e; g这是C的
  1. /********************************************************************
    ( {2 _3 b. h7 t  @" A
  2. *    File: DOS4G.H                                                  */ ]( \4 p0 p8 W- r6 j2 E+ f3 ]% r
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    5 v, b4 H" v% I
  4. *                                                                   *
    ! l: h% _% m+ w0 C" t( e
  5. *    ========================Title===============================   *6 U: i- `8 u# M; y6 p8 y$ L
  6. *        这个函数是让系统进入DOS 4G模式                             *# @% W8 L1 S' [5 m6 U
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    ! r8 o, X: ^' H% H: a7 t" D
  8. *                                                                   *( f/ B0 t1 E* |
  9. *       使用: openA20(); set4gb();                                  *
    / M) h/ |' {0 T
  10. *                                                                   *$ L- `' b6 l1 Z/ |( `: |; Z! [) P
  11. *   ===========================History==========================    *) b, y/ g+ t* k/ b5 b7 S' E9 p! L' e
  12. *    author: bini                                                   *& p/ j7 {( n  U& F# |
  13. *      date: 2004-11-30  Frist version.                             *
    6 w" v2 Q) L) K$ {) Z( ~
  14. ********************************************************************/( |/ a  z  _5 C; O+ Y1 i

  15. 1 K4 e( n4 I  B" \/ Q- l
  16. #include <conio.h>
    & T( G$ n, I3 I: R
  17. #pragma inline
    $ e7 Y# V6 `7 {, s+ W

  18.   ]. F/ G. X* G! E5 V8 Z( J( H
  19. /***********************************************% S3 e9 X+ D" Z6 q' @" S$ w* Y' K
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    6 r4 {1 z5 H! L3 u. W3 ^7 f, k$ D
  21. *    第二个为一个数据段,没有代码段。           *% G$ @7 U! f9 C) v$ |
  22. ***********************************************/
    6 C, W& Z! m4 |' ?' j, o3 l: _; |
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/- w3 Y& D% k- R, ]  Z1 R
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, $ \1 ~* F+ k/ t' u
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    0 H5 k; n; b1 |: }& R9 `0 L1 w  k
  26.                                       */
    9 G) ]3 q  ~( U0 P
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )+ U4 P# R9 w0 m' t( B* M# |) T1 f! ?* @
  28.                                          最高字节为 base( bit 24~31 )1 ?, b/ u  K2 x4 z4 ?6 O
  29.                                          
    ! t! B# L; C' ~) M" Q& M8 s+ `
  30.                                          属性Attrib = 0x8F924 X" e9 [* Q& @" r
  31.                                          3 b1 W# K4 _6 r2 i0 i( q' u1 f" v. {3 B
  32.                                              属性位Hibyte低四位为
    - d. }- A) e) n! u# r
  33.                                                  Limit( 16~19 )=F% ^/ h( U% r8 j5 @. E0 v
  34.                                              属性位Hibyte bit7 为粒度
    / s& S' Y; o) v9 n" @8 c* K
  35.                                                  (值1=4KB粒度)! v$ G* |' @% }7 q' g9 @/ u+ u
  36.                                                  8F & 0x80 = 1
    4 _2 x6 P7 A. X7 f$ A3 l
  37.                                                 
    - J$ p% x7 @6 P: p! v& u
  38.                                              属性位Lowbyte低四位为段类型,值=2: \% j9 q% g4 X
  39.                                                  表示为可读/写段
    ) T/ |$ l) v* @; ?' l1 M+ q9 ?9 ], O2 c
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    " i6 R" s  N& \
  41.                                                  描述符对地址转换是有效的。
    : k' @+ t( x9 W8 X% o
  42.                                                  bit0=1表示为:# S6 u. `1 `* @1 ], }& h; L- G+ p
  43.                                                  系统段描述符。而不是门描述符。0 x1 p6 s' {' K9 u' H! w
  44.                                              * A: I. r5 i7 N0 g2 Q$ \
  45.                                          */& n1 [1 O0 t, ?- ]& L( p4 f
  46. ; q' f0 ]- s8 s# _- O; {
  47. /****************************************
    , |" G( y3 a6 Z% _0 t
  48. *    GDTR寄存器, 48bit=6bytes            *% A) O; H) k: f* Z* [
  49. *    +-------------------------------+   *
    6 K! e- x7 S2 B5 {9 N
  50. *    |   32bit基地址       |16bit界限|   *
    0 M8 M) w% z% e* K/ p
  51. *    +-------------------------------+   *
    3 b$ E, u9 q+ Z% p
  52. ****************************************/
    ! [4 |, K" H" H, e8 M- m
  53. unsigned char GDT_Addr[6]={0};9 i3 x- o& @6 E) X8 O8 V! i
  54. % B8 W- U$ d+ I8 J: k; N% k
  55. /****************
    . w" g( w' L% k3 r1 R
  56. *    打开A20门    *
    8 V5 q( H8 G9 p
  57. ****************/& j& H- R% m- D: m
  58. void openA20(void)
    3 }9 o- f' e8 w, _3 A( s
  59. {+ E! y2 {5 x& s
  60.     asm{
    2 O5 ?, u# v# O0 E. ^3 o5 ^' \
  61.         pusha5 l; g2 o# O6 j0 }. q9 V
  62.         in         al, 92H
    : q4 |7 K5 F6 `/ N
  63.         or         al, 0x02
    1 R7 Y) S0 j. n$ D+ l. l& U
  64.         out        0x92, al
    3 B. o2 u% B: Z2 K* [/ f9 J7 }
  65.         out        0xed, al
    + F/ l( u: K. ]# w2 @
  66.         popa
    3 q- R7 [* a; v, |: V$ g7 m# F5 @
  67.     }. \/ u( i! ?( I* t  d' k  Y2 B
  68. }
    , t, q+ g) v3 z/ n  L  n/ Z& a2 o
  69. 0 j1 ~9 ]6 ^) v8 S
  70. /***********************************************( ]/ Z5 j" _2 J+ ~5 a: A
  71. *    函数功能:进入DOS4G                       *6 K6 z# F" R. C6 |$ i2 T2 a0 t
  72. *    ====================                      *0 |/ m0 E+ w- C% n" E7 G
  73. *                                              *
    8 Y% s! C: B8 U! W& S2 d! K
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    + Q6 K/ R) `  [" `  \3 h9 g' a# c
  75. *   如:                                       *; I$ g; |  n' C5 C7 F  X& e- l' F
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    ' p  f0 `# F4 O
  77. *       表示为 2个GTD                          *
    * @& I8 \, i: ?4 T" z( \0 ?
  78. *                                              *
    ; O$ P" _; L6 ~! y$ A
  79. *    选择子为所在描述符内的字节偏移。          *) H: k$ @; j' v/ W* V1 s0 m
  80. *                                              *
      U0 v3 R+ T' a& r0 Z& E
  81. ***********************************************/9 ]# R0 o1 B# N
  82. void set4gb(void): r; V0 s7 @: d% m9 Q* l
  83. {" M" z2 w. Q+ z* H
  84.     asm{
    2 [9 K2 o! E$ I9 t6 |
  85.         cli
    5 c2 z4 ]* \) \( O# i
  86.         /****************************************% G1 N- h  V) ~0 C9 y" K
  87.         *    GDTR寄存器                          *
    ' u1 _1 v( q& K2 N0 g  W5 O/ a
  88.         *    +-------------------------------+   *
    9 C' `/ N) X0 _1 W2 r
  89.         *    |   32bit基地址       |16bit界限|   *0 m, M5 T. r4 o* V
  90.         *    +-------------------------------+   *
    1 P4 ]+ ~* v0 r' P7 W4 c0 k
  91.         *****************************************/& s' x1 P* v# a, _( g/ ^# B0 T. T
  92.         /*********************$ n7 {+ `3 Z) q! |2 p
  93.         *        得出段界限       *
    ! g7 @# t( ]9 k* J4 x' _4 }
  94.         *********************/4 f* i! G4 [, }6 ?5 l
  95.         mov        word ptr GDT_Addr[0], (2*8-1);( q7 _( F5 w' i6 r9 L$ {# \, k
  96.         /********************************************1 w  E8 o! L, n! z& }+ g
  97.         *    计算GDT表的32位基地址,存入GDTR        ** ^) Q" I2 c, T( `
  98.         ********************************************/9 c( ]* L5 ^& l  z
  99.         mov        eax, ds0 ?1 V) Q; E4 D
  100.         shl        eax, 4. v& S: B& U) m9 ^3 C  v" @
  101.         xor        ebx, ebx
    5 t7 H1 O/ G  S& U4 M/ q" z
  102.         mov        bx, offset GDT_def: J3 l5 {/ c7 h! d
  103.         add        eax, ebx
    $ ~- s( F. f  d  R% @- |; u3 m
  104.         mov        dword ptr GDT_Addr[2], eax/ _, ~" d! W4 B: {& J6 g
  105.         lgdt       fword ptr GDT_Addr" l3 r" V: n9 C; T2 S
  106.         /********************
    6 V9 h& X" T& M) v
  107.         *   选择子偏移      *4 U& `+ h- P" X: d2 Z! F, X
  108.         ********************/, ^% g; W- y& r  T. B6 _
  109.         mov        bx, 8
    1 {- u( D, j  U; d5 V
  110.         mov        eax, cr0
    8 g. o" D9 M% s( d; w
  111.         or         al, 1( s. v, T6 e: [- C; ]+ h
  112.         /**********************( Z  T. R9 y, @3 K
  113.         *     进入保护模式    *, y! Y5 a9 \! ]3 y! c8 o9 q( l
  114.         **********************/
    5 D& C: u* o# t) n
  115.         mov        cr0, eax9 h: z' a" C0 F7 q9 {1 \' r
  116.         jmp        pMod' v' {0 Z+ D6 T( p2 m8 S3 l
  117.     }
    # r! U# p" f" w$ W8 ]6 v1 \

  118. : i, c2 `' J/ M  [, q2 j
  119.     pMod: asm{5 C. K9 d+ A) a3 S' Z6 D
  120.            /************************************************************" ]. {# q; y+ e: `, X+ X  e
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    : ?8 `; x2 S" o9 e
  122.            ************************************************************/' a( R2 D& D. f* V7 O' P
  123.         mov        fs, bx
    6 ^  Q' }7 o9 Q0 ?3 b
  124.         mov        gs, bx  D5 ?7 Q$ ]" @: S, D
  125.         and        al, 0x0FE
    , H6 N3 y- D& ?6 x; ?
  126.         /******************9 F7 J9 P' S% K0 x
  127.         * 进入实模式      *' \8 [5 `0 R- S3 R5 X
  128.         ******************/
    7 I# K0 d. Q1 v; B: t
  129.         mov        cr0, eax. i8 B1 _. f8 j! ]+ A. J2 w6 `- W/ y# Q: x
  130.         jmp        rMod; h9 i" M) J& ~9 W1 k4 m% J
  131.        }( R' {9 H+ W4 t
  132. $ A+ }% G8 D, j1 j
  133.     rMod: asm{5 l* R. \- K( W. g' K
  134.         /* ******************************************************************1 `: A9 I# u. j5 Z4 W: j* a
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    : i0 h( `1 K0 d+ u/ \( k3 c1 p+ b
  136.         ********************************************************************/
    " a3 }" E2 n2 F5 _
  137.         mov        ax, 0
    * U$ q  r9 h8 h* H! s
  138.         mov        fs, ax, Q  c" t$ [0 L
  139.         mov        gs, ax
    . l6 z, Y' J4 n6 `( c0 T
  140.         sti+ c; [! _# J5 i7 \4 Z
  141.     }, o4 L+ O2 m, H/ e: i  Q6 R( |$ M
  142. }
复制代码
这是asm的
  1. ;/********************************************************************% e5 q. d  F$ @6 `$ A. E
  2. ;*    File: DOS4G.asm                                                *+ }! l+ a" g9 g6 @: B4 e. V
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    & e6 x! u1 _. a9 o% Q
  4. ;*                                                                   *
    0 d5 c2 o' s5 r+ A$ U, D4 e' f
  5. ;*    ========================Title===============================   *
    & A4 H& o0 I4 v( b  g% Z4 ?1 o
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    " }6 f& _) e4 P, I9 p& t
  7. ;*                                                                   *
    / E+ F* ?- _% d  G) N) z
  8. ;*   ===========================History==========================    */ ]4 P1 C; X) ?9 i
  9. ;*    author: bini                                                   *
    1 A1 K6 o+ z! o: I  a
  10. ;*      date: 2008-10-08  Frist version.                             *
    * s: N  k2 \2 f( U( _6 G
  11. ;********************************************************************/ 0 q+ m7 I8 v$ [9 j  p# o& d
  12. .model small
    2 m- M* w7 o% h' Y
  13. .586p! N  |; J5 f2 l& B
  14. % A/ ~4 R; h( ~% s/ O
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    ; c, t8 p" o* \. q. w
  16. ! W# _/ R$ W' s' X) F
  17. DESC            STRUC# [) h, u! W" d: b6 I0 ^' E( N; e
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    8 i9 y- K0 K5 L. F' F) N/ X7 t
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    1 P* j9 i7 Q: }' C2 I; t; r5 Y
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    * Y+ U" Z/ [" Q/ y6 r
  21.         Attributes      DB      0 ;段属性" o4 A6 [/ i! J5 ]  l
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)6 o# o1 d# t. }) Z4 ]; n
  23.         BaseH           DB      0 ;段基地址(BIT24-31)" [$ O* R/ P- O' l& r; e  }: y
  24. DESC            ENDS
    5 Z  ?& x3 o7 f6 K6 @8 [* E0 {2 x% o

  25. 8 F) P7 Q! V7 q& V% M8 P
  26. PDesc           STRUC  _3 e3 `( J" Q3 ]; c+ R, P
  27.         Limit           DW      0 ;16位界限
    4 O/ K; m! [/ L+ m0 d# v7 U
  28.         Base            DD      0 ;32位基地址  ~2 O( Q$ c2 Y: e, S3 E
  29. PDesc           ENDS+ E+ B: G( `  Z

  30. , ~. J8 c5 f) u2 E' x4 n% ]3 ~
  31. GDT_def         Label   Fword
    / H$ }- i2 J4 A% o, M- Q
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    / Y4 w+ Y: o& d
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    # @3 S) C8 w& V9 U5 x0 D6 W  R& J
  34. 3 n& {( s, L* D0 F' [4 ~( h
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    ; k7 p4 n! w: W& B. N! [
  36. DSEG            ENDS                          ;数据段定义结束8 m2 @# l/ s5 q# G: }
  37. / @4 c6 F* f. u+ ]
  38. CSEG            SEGMENT USE16                 ;16位代码段
    + l3 B" k0 f% x/ U. b  D# G% a
  39.                 ASSUME  CS:CSEG,DS:DSEG
    & m* T, g' J" d) ^( y' l- r
  40. .Startup
    ) k1 V$ |9 p5 H( t
  41.         call      Set4gb5 k5 e0 G/ O& Q! z7 X, k
  42. ;
    2 Q# g; P/ q" a" r1 L8 U! G
  43. ;       fs, gs即能访问4GB空间! N7 ]/ z! W) Z% g" q
  44. ;       write your code in here.4 z! k# h- ]3 e- @9 o1 A9 Q: v
  45. ;6 Q) ?0 _- b( s; B+ y, U' K
  46.         .exit
    & D4 n2 Z  ]: _2 X# u
  47.         
    9 ~. l+ A' r9 J. {
  48. Set4gb          PROC      NEAR  p2 o/ ]" X) a. K* O2 c
  49.         in        al, 92h
    3 b! u' J* K0 M4 P6 {- F: W7 C
  50.         or        al, 0023 o; l  X/ q" V+ R9 i
  51.         out       092h, al
    1 s8 b/ z: S- x( ~( K) L% X9 Q
  52.         out       0edh, al9 F/ @1 H& l9 r; z+ T& H6 D5 O

  53. ; D* D& |9 [1 ~, r# R' u8 M
  54.         cli. W8 t* A7 k0 P/ P

  55. , x' Q' n8 y8 v& r$ o* h  S
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    ) ^  t' S5 W) [0 O

  57. # t" W8 g% b  X9 U4 b% K0 g' Q
  58.         mov       eax, ds, G/ k8 W( i8 ^$ Q* \# ]" l
  59.         shl       eax, 45 s( M2 P+ ^  c$ M) S
  60.         xor       ebx, ebx4 e2 C# D; b2 x1 _% @2 j
  61.         mov       bx, offset GDT_def
    3 k( i, l* c$ x
  62.         add       eax, ebx
    & `2 s% Z2 g. j
  63.         mov       dword ptr GDT_Addr.Base, eax( P7 i' |8 L: {# y+ X3 X5 C1 x
  64.         lgdt      fword ptr GDT_Addr7 K" B* q  H6 \4 }, |. C5 ^3 L
  65.   N& a+ i) L( _( u: z: L9 }: s9 e
  66.         mov       bx, 8- n5 U( l* Z/ S
  67.         mov       eax, cr0
    8 M4 @$ k4 [3 _
  68.         or        al, 1
    1 l+ s7 `' t% `3 c' g$ S8 m
  69.         mov       cr0, eax2 p1 L9 v+ }" g5 s% v

  70. 2 J0 v- X+ E/ v! e% M  x
  71.         jmp       pMod0 Y6 L* k/ V9 I6 l* l. j& ?5 O# ^4 }
  72.     pMod:
    $ ?) f. s. o9 U3 G% c+ t  `% k

  73. . f/ l, T/ t+ {2 k7 F3 h
  74.         mov       fs, bx
    1 X& c( d% ?1 b1 P2 A1 S/ X' w
  75.         mov       gs, bx1 p; j$ z/ J9 U- @7 F. J5 e
  76.         and       al, 0FEh
    $ H: e1 U' B0 u$ }/ \  x' P
  77.         mov       cr0, eax, r; z, f: U0 q9 j6 j
  78.         
    0 k6 s5 n  u# Q, H" |/ r4 k
  79.         jmp       rMod3 K1 }+ R6 D# [! }' D
  80.     rMod:, m( V8 `2 T* V  l7 x1 Z

  81. . v1 w) v' Q& F. b! H8 l+ I$ g
  82.         mov       ax, 0% \% U( ~8 j" R) J
  83.         mov       fs, ax. w2 g. F  T+ N6 f) h+ J  F6 C
  84.         mov       gs, ax+ w; w7 f( b8 |& |0 u& w
  85.         . ?+ M9 K! j8 B3 K1 o7 J, v
  86.         ; 在2M的位置测试写一下数据
    # L& ?; ?& i. V
  87.         mov       esi, 200000h7 V6 q0 I$ Y1 m  W- O
  88.         mov       dword ptr fs:[esi], 055aa55aah
    & f7 Y# m" J& v* E, G/ }# e8 \  F0 r
  89.         ; 用RU去看看200000h的位置是否是此数据....6 P0 {4 k- e# W, U1 k
  90. ; Z) ]2 h+ x' F, [" f4 v2 t
  91.         sti
    & b# d5 K; K; N5 t, ]& M5 b
  92.         ret
    + U4 S- T& m, A4 R) I9 Y# s
  93. Set4gb  ENDP8 u! ]7 q' ?  B6 a
  94.       
    5 Y. i( W  C# D. P
  95. CSEG           ENDS                              ;代码段定义结束; K/ D/ Y% w3 {3 ~6 T1 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选 80386  \% _, u# ?. d& p' y6 A
& G  ]. H6 N0 @
option->compiler->code generation中的option选中, [X] compile via assembler
2 D2 `9 B; K+ \8 N8 j! l% D( p. }/ G3 w# K4 w* E# _# x4 ]( ]
[ 本帖最后由 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;
0 G5 I7 N8 X, W3 o+ {Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;! K. J  _% S. `/ m8 d% ?# v  Z
; m8 L, U+ Q! A8 M  K
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;9 ~" E) `( t! t4 v, ~6 C! _% }" {
替换如下,4 o* Y. E( W# d9 |
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
: K& b9 [' h. {9 m* f; w& A% l: WData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
5 L2 }+ t4 m0 ~1 U- l
. @# ^0 e: ~# zGDT_Addr        PDesc   <$-GDT_def-1, >
3 j9 B5 d/ R" R9 a这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 6 X! Q2 W0 @) C! a
option->compiler->advanced code generation中的instruction set选 80386- E7 c9 B: i9 G8 w2 K

& K" J" t: J" Q$ B$ R8 ^# xoption->compiler->code generation中的option选中, [X] compile via assembler

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

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
+ b% k7 H5 D7 P7 K1 h
0 ?4 m3 w, i8 P: |   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

. b+ D9 x% ~$ J2 s5 n. Z
# \( H$ E6 j1 o  q我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;. J. j( ]9 N' u+ K+ E3 k
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 04:18 , Processed in 0.308981 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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