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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。, N8 b, x6 J$ I* G" I6 A9 c7 e6 T& _
9 Z/ D) C9 p9 j
这是C的
  1. /********************************************************************
    2 j4 b- v8 ^6 t3 Z& C
  2. *    File: DOS4G.H                                                  ** t& h& K1 \3 d6 \, V8 B  c) ~
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *- i8 w1 h$ c% r1 }; ?
  4. *                                                                   *
    ' l3 @- ]! i, r
  5. *    ========================Title===============================   *
    $ o$ j: O4 N; U) E
  6. *        这个函数是让系统进入DOS 4G模式                             *+ q; c5 r8 m" ^. {" ^6 S9 a% h# ?* P
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    9 N6 \+ g4 U. n  T% |1 s2 a6 v3 |9 T
  8. *                                                                   *
    % j7 a9 C) B( S  L- e& p
  9. *       使用: openA20(); set4gb();                                  *
    " E2 F6 A+ [; D& _, f& K
  10. *                                                                   *% N- x' N6 g8 W# a
  11. *   ===========================History==========================    *
    3 z3 N! {7 A. ]) U# N
  12. *    author: bini                                                   *
    4 Y8 x  ]9 C2 k4 h/ O
  13. *      date: 2004-11-30  Frist version.                             *8 i0 r. x* H/ S* h4 v  o4 |
  14. ********************************************************************/
    6 e" |& c" N- a" E/ D- ^6 R. F' c
  15. ! S- o/ n9 }0 {7 T5 w7 U
  16. #include <conio.h>) Z( t/ P) [9 h: m8 n3 @
  17. #pragma inline: m% Z# _& k6 M

  18. ( ?' c; B3 X* ?0 r' v
  19. /***********************************************
    " H% W* N1 Y! G2 Y" n& f* h
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
      ~' r/ g5 j' h
  21. *    第二个为一个数据段,没有代码段。           *% [% @% c( _) _/ N3 ~
  22. ***********************************************/! n* a3 X9 @3 R  b
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    # w3 F6 t* m6 O: X% [
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    % ~; _5 P3 D% W; j
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF 4 x- V7 _/ K4 s# Q  m# a  I
  26.                                       */
    1 ?3 p# n- g3 s7 l4 J4 [& o* _+ A- d
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    & g% j* A3 p1 Z+ u
  28.                                          最高字节为 base( bit 24~31 )
    * l7 L- J3 h) ?( E
  29.                                          
    7 W6 r* u9 R7 X
  30.                                          属性Attrib = 0x8F92
    6 i7 Z* K' @/ G" h& A
  31.                                          . r* v" M- N0 U4 U
  32.                                              属性位Hibyte低四位为
    2 i3 t; }2 X2 [9 U( r3 o
  33.                                                  Limit( 16~19 )=F
    % h+ |8 D: _3 |  z' |
  34.                                              属性位Hibyte bit7 为粒度
    ; P! D7 L# e2 i( D$ W
  35.                                                  (值1=4KB粒度)+ ]( u! h: }; W3 x
  36.                                                  8F & 0x80 = 1$ ?2 s1 U# C' c: Z) v3 R
  37.                                                 
    2 {5 e5 V- j& |+ e
  38.                                              属性位Lowbyte低四位为段类型,值=2
    5 P5 y, H; \( r/ C5 i. [+ N% b
  39.                                                  表示为可读/写段+ i9 D8 v. h" A* ~/ X  u
  40.                                              属性位Hibyte高四位=9,bit3=1表示:+ J" m; F# M5 H6 I3 Z/ m) L: [
  41.                                                  描述符对地址转换是有效的。1 O2 u& I3 c6 A& ~. ]) V% G8 d
  42.                                                  bit0=1表示为:
    " ~& k  D& k/ v" h3 z
  43.                                                  系统段描述符。而不是门描述符。
    / r  |7 o( i+ E" K
  44.                                              - S! ]# ]# Y+ O8 X! t; ^( c0 z# e
  45.                                          */
    # X7 O' y) K) d" y5 ?- D
  46. 4 O3 g$ b: N3 r) I
  47. /****************************************
    ' y/ ]) ?" d& l( f8 L0 G1 j0 Q( z
  48. *    GDTR寄存器, 48bit=6bytes            *3 s% D/ O; [. p" T, x$ d6 W6 n
  49. *    +-------------------------------+   *
    1 O3 \6 C/ c) ?* E' ?5 `; D1 ]0 d" ]
  50. *    |   32bit基地址       |16bit界限|   *
    ! S2 z: l; W  O( q: x) f
  51. *    +-------------------------------+   *
    3 v- u' ?$ W5 }0 p& \4 ?3 u+ M
  52. ****************************************/
    $ K! X2 D" J7 x2 G3 u
  53. unsigned char GDT_Addr[6]={0};2 b) q9 Q8 b; ]$ S, L4 C* }* q8 W9 U3 w

  54. # O; W0 o1 T8 G: x9 h
  55. /****************
    # J* ]) L! h7 G: P
  56. *    打开A20门    *
    , F" A( }' c; r) @6 r  Y
  57. ****************/
    2 P/ f7 s0 k- |* O8 G3 r
  58. void openA20(void)
    , b. w% A4 f: v2 h, r8 G4 Q
  59. {
    5 H6 Y$ U& |8 g
  60.     asm{' X- H2 B) \' L9 ^1 B( o) [0 T: p
  61.         pusha7 D8 ^' d- l) c. j/ H
  62.         in         al, 92H% Z- o  u0 T" `
  63.         or         al, 0x02
    2 T4 c0 V* c* B( B2 n5 |
  64.         out        0x92, al( m7 Z. g9 l3 J
  65.         out        0xed, al( @$ ]+ R2 R; b7 C+ j3 B8 h9 S
  66.         popa
    7 O/ y8 J3 O+ c& e" j; {1 O' K
  67.     }
    1 H% @0 a- A5 H5 _7 w+ u9 G
  68. }9 K1 J3 [" z. h% ]( v

  69. 7 k; f, }: q; B4 N+ b0 J
  70. /***********************************************
    ! [0 R* n' n1 `4 Z/ `0 R7 O7 u* `9 w4 c
  71. *    函数功能:进入DOS4G                       *
    ) t7 e. O/ w2 J2 @+ F( ^
  72. *    ====================                      *3 `7 H2 {0 H3 r8 G* W" U8 V. s8 ^
  73. *                                              *
    + g$ T' D- I( O1 }. k
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    6 d$ G2 Q) D, d# y4 c) D2 p
  75. *   如:                                       *
    9 l" |) d( j: o8 k/ c
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *! ^- W% o: s9 j3 ^5 v
  77. *       表示为 2个GTD                          *
    : N9 s& g, h8 p4 p6 O
  78. *                                              *
    , H7 U/ L. `' N
  79. *    选择子为所在描述符内的字节偏移。          *" n& ^) c6 U4 I) @5 M8 B4 V
  80. *                                              *% S0 {3 R: }/ D3 s& ]4 n& F
  81. ***********************************************/
    % g2 Y& L3 n0 ~( N4 t1 q% f, D
  82. void set4gb(void)" T% |- j1 X% v/ i+ R$ f
  83. {( |$ r2 d, _7 u3 P/ U
  84.     asm{
    3 ^7 t! v  a% n
  85.         cli
    " t1 F9 {5 V2 z) [( ~: h8 m* t% I" a# `
  86.         /****************************************, W/ \. p% x  J; c' [" h
  87.         *    GDTR寄存器                          *# v1 j" L4 q! c! ?; b5 Z7 V8 E- P
  88.         *    +-------------------------------+   *
    ; l( e$ n( o  P
  89.         *    |   32bit基地址       |16bit界限|   *! J) W' u! C7 ?8 a+ }
  90.         *    +-------------------------------+   */ v' N! B) j: [5 u$ [
  91.         *****************************************/% ]! W3 d% x5 M
  92.         /*********************
    0 d! S" A* h4 m, l# Z) Z
  93.         *        得出段界限       *
    6 ^' b4 ?5 Y. A# u
  94.         *********************/
    / Z7 u3 E0 q5 B0 ^; [: [% {! y
  95.         mov        word ptr GDT_Addr[0], (2*8-1);9 R/ _2 j3 J6 X3 M  O4 _0 b
  96.         /********************************************) u4 I% d3 {; r( K( x
  97.         *    计算GDT表的32位基地址,存入GDTR        *" t, C1 V2 x/ v- w: q. B
  98.         ********************************************/: p9 E# O8 b! D1 O  K
  99.         mov        eax, ds  t9 ^1 G9 D8 o5 _; `
  100.         shl        eax, 4" m9 ?: y8 d- n
  101.         xor        ebx, ebx0 s5 t0 [; G1 @' [. p
  102.         mov        bx, offset GDT_def! H7 p$ m9 H8 a9 W
  103.         add        eax, ebx5 `/ f4 {8 z; x) g. S& }# R; n
  104.         mov        dword ptr GDT_Addr[2], eax& e: P/ V9 h& r. T5 \* f
  105.         lgdt       fword ptr GDT_Addr' R$ N, S! W- _& O2 O# N6 T% X
  106.         /********************
    ! q0 W' |+ r% w
  107.         *   选择子偏移      *' H5 e) Z) d. F+ i% \
  108.         ********************/
    # o) Y8 S9 t: Z4 U% I
  109.         mov        bx, 8
    7 F8 p! n" p/ H, `8 O) q
  110.         mov        eax, cr0# D0 d# \# _* x9 O5 D9 O, P" `
  111.         or         al, 1
    " R) R0 `7 @6 c* H7 u
  112.         /**********************
    7 t3 ~9 x# k0 v# ]; k2 F) L: t
  113.         *     进入保护模式    *
    , e! U! \" S- G: a* g
  114.         **********************/
    : Z3 y  L; f1 k( F7 v, }; h
  115.         mov        cr0, eax  c/ L+ N9 V1 l( `6 j1 h" m0 j. }
  116.         jmp        pMod0 f8 r1 \3 V! S9 ^
  117.     }
      b+ X; D: ]* J/ E5 j1 c
  118. & y" @+ M" }" m% X8 m9 s
  119.     pMod: asm{1 Q* h9 q  \! s: p2 `# V6 Y& f: G
  120.            /************************************************************) |. i$ Y! ^3 s/ K( Y
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    6 s( w5 ^+ N9 l% s; G' A" [
  122.            ************************************************************/: S6 W! \- C% a0 `
  123.         mov        fs, bx
    , V3 K' L' B& i2 L- `* b
  124.         mov        gs, bx. l6 i, A% _+ V( j+ w/ l. Z5 _
  125.         and        al, 0x0FE
    % u' \( e8 u9 }: L' @. G
  126.         /******************# o* G, \+ Q" @+ Z
  127.         * 进入实模式      *4 T; W! p$ i& Q: q6 T
  128.         ******************/
    % F2 C% [; l: K! u( X
  129.         mov        cr0, eax1 U8 A4 h7 ?9 b; N
  130.         jmp        rMod
    % |6 {$ D; ~$ g9 A7 R* }) W4 y% L
  131.        }1 _8 H; s& b& J: }# B7 V9 I

  132. * U" e" m8 s8 b- ^
  133.     rMod: asm{
    2 j# ^+ y) y0 `7 V
  134.         /* ******************************************************************
    ! Q: \, {6 K) y9 \9 ~" L
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    ( e* A7 [! T* v5 r8 b* |- }* t
  136.         ********************************************************************/
    # a9 |( Z0 w( o3 {3 f5 e
  137.         mov        ax, 0
    4 C1 L' p+ ?/ i( h
  138.         mov        fs, ax
    ) L, L" B* ]9 @/ E8 Y/ m: u
  139.         mov        gs, ax
    6 U, S, F. [2 I3 |8 Z0 X3 T6 |
  140.         sti
    & l" E0 a$ f4 q9 @1 @
  141.     }
    5 m3 \) z1 B3 J9 [% o4 c0 G" a
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    / X' J* S3 j& b
  2. ;*    File: DOS4G.asm                                                *
    3 R  A1 i5 r0 t: E! p. {
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  */ K% D4 h3 Z9 j( s& t3 |
  4. ;*                                                                   *
    ( G! `1 p* ]2 L8 q; T0 s8 S
  5. ;*    ========================Title===============================   *
    " ?' N4 F- ~- Q  t1 y/ S8 Q( T
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *  T$ ~6 Z- R* W+ ~' N& P+ k. l4 O
  7. ;*                                                                   *1 c8 H' u4 s' W- O, P* w: S
  8. ;*   ===========================History==========================    *
    ; B  f8 o! X: S- t" \+ d: n
  9. ;*    author: bini                                                   *, d, |( A" a; J6 d0 r7 o
  10. ;*      date: 2008-10-08  Frist version.                             *
      U. M6 Z5 R, X2 \7 _
  11. ;********************************************************************/ 2 x+ ]5 B9 R6 g$ |$ `4 w
  12. .model small
    1 x$ y: u0 m; A# p6 K2 S; j, x
  13. .586p+ [6 w: ?* f9 ?# L

  14. . e; @+ E/ a# @+ Z* A* E8 X
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    3 d- e+ D" x' f: ^1 {

  16. 1 d2 o. A/ y' C% X: F7 H2 `7 o* n
  17. DESC            STRUC
    2 C, Y; i5 @1 G) J
  18.         LimitL          DW      0 ;段界限(BIT0-15)/ C  @, u& X, Z8 o$ Z( y
  19.         BaseL           DW      0 ;段基地址(BIT0-15)+ N* i. l& w- x2 A6 ~
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    9 @6 L; h( Z- d/ O, M/ p
  21.         Attributes      DB      0 ;段属性
    7 ]; h5 [, H1 A: E$ q
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)2 M# r$ L8 ]7 r1 V% U
  23.         BaseH           DB      0 ;段基地址(BIT24-31)3 O2 D2 ^( z: v1 x9 S' |3 @
  24. DESC            ENDS9 R0 `0 E% n8 F/ j, ~% v0 D6 m
  25. & \! Q  B( d( r+ V- V- l
  26. PDesc           STRUC" i5 t+ H1 U4 @4 ~9 l
  27.         Limit           DW      0 ;16位界限
    " R6 }$ H5 `9 t  g
  28.         Base            DD      0 ;32位基地址1 E7 N5 E! p5 g! s' R
  29. PDesc           ENDS
    ! D# T2 o3 O! Y& F; s# S" G, i' \
  30. ' h3 l8 ?! \. _4 f5 G
  31. GDT_def         Label   Fword4 }' p! U' h* e1 p: p4 _2 M. T+ o
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    ) w  [7 |1 g0 D, {; Y
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    / t5 c3 }* R: f7 Q# o6 A9 @. ]

  34. 4 I1 }. m* P2 [" J  g# L, q9 f
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    9 `$ E- Q& S( [5 n4 m7 L( l
  36. DSEG            ENDS                          ;数据段定义结束
    6 h* Q- p9 E3 I
  37. ' e8 H! C) C; a2 ?% T3 y) N
  38. CSEG            SEGMENT USE16                 ;16位代码段- R, \/ h. f% {. F
  39.                 ASSUME  CS:CSEG,DS:DSEG  ]( R, Y5 r! }; q) m
  40. .Startup5 O9 J) f/ Y8 ~8 u7 Y, @: G
  41.         call      Set4gb4 X. b5 c/ o. z. v7 Z5 v& T
  42. ;3 {" b+ P8 w8 }" a/ H  z7 c9 L
  43. ;       fs, gs即能访问4GB空间
    5 E, G' l% d# z7 |" z
  44. ;       write your code in here.
    5 A/ N0 \2 a& p  Y- B4 K
  45. ;2 G9 r7 p( V- M8 S1 B+ h% o
  46.         .exit
    ! E: j. E; ]  G5 @* |9 p
  47.         # |" Q* [3 v' w6 U& `4 v. p" n2 P
  48. Set4gb          PROC      NEAR" z* w5 \; E8 v3 \/ j0 f7 w% q
  49.         in        al, 92h
    / D! y0 ~( U- l+ L; l- j
  50.         or        al, 002
    % `$ _8 s" N: f" x- e, t' t! i
  51.         out       092h, al
    & w, v8 L% V3 }( y/ e: Y
  52.         out       0edh, al8 O0 p) y7 ?2 z# S3 A0 D, Q

  53. ' C. _: x3 `2 P
  54.         cli
    : x0 M- u; D, ~* L2 g5 u
  55. % R3 K$ }' Z* `) d' x6 T
  56. ;        mov      word ptr GDT_Addr, (2*8-1);7 j2 C, ?; V# A0 L" q! |2 x

  57. 1 \, d# D) _8 h4 b# s
  58.         mov       eax, ds
    ; F; V2 j- }, K4 ^- z
  59.         shl       eax, 4
    + y$ o' g" `5 K
  60.         xor       ebx, ebx) J9 Z! S5 ]7 K. D
  61.         mov       bx, offset GDT_def* w% c! g* V; H; Z2 a. `+ p# U
  62.         add       eax, ebx8 f' H* U  e) S
  63.         mov       dword ptr GDT_Addr.Base, eax7 S, v* q" M/ t+ j- |- X
  64.         lgdt      fword ptr GDT_Addr
    0 k& l. d  ]/ S2 T+ ?
  65. * ^$ N  ~/ @$ _( q
  66.         mov       bx, 85 ]% }$ A- E2 V, b% y# o* t
  67.         mov       eax, cr05 q. j" p+ B6 t8 q
  68.         or        al, 1' k' e  w! r5 {  a" k
  69.         mov       cr0, eax9 a! l5 k  W2 ?8 x( ~

  70. ( z  }5 e9 H  T' J4 c3 z  |4 D
  71.         jmp       pMod+ S9 @( E3 ^. C! R
  72.     pMod:* t7 i7 Y" k, s. i6 c

  73. $ l3 k/ b3 V4 e% W* z1 R' j3 j5 N( ^
  74.         mov       fs, bx
    8 R( h$ F7 A" }3 h- p$ M
  75.         mov       gs, bx
    . r7 {0 s. ~  Q
  76.         and       al, 0FEh4 W4 P3 g* C- k5 _
  77.         mov       cr0, eax
    - f- b) ]3 `, l/ _) T* A
  78.         " y7 A9 E1 d; [; X- g% ~
  79.         jmp       rMod
      r3 V2 y2 H. [
  80.     rMod:# ]9 J% v. s* L( P& j+ i
  81. * e. u3 s0 M9 @0 b) H$ J9 ]$ Y
  82.         mov       ax, 0
    9 q2 l+ J9 W$ L, C
  83.         mov       fs, ax
    $ N- |* |2 ~  q0 F
  84.         mov       gs, ax7 o$ w- ]) S/ e0 _& m1 A$ T
  85.         4 W" ]- w3 x! x
  86.         ; 在2M的位置测试写一下数据
    % T* H$ N* w9 P' D. u0 a
  87.         mov       esi, 200000h# Q1 p5 }; M! n) v8 b
  88.         mov       dword ptr fs:[esi], 055aa55aah
    * V$ Y0 P% e, {
  89.         ; 用RU去看看200000h的位置是否是此数据....
    % a7 z' G3 h# F
  90. - Q4 k  X% ^3 Q' b, T: w6 _
  91.         sti
    1 v. R3 ]; V8 o5 S
  92.         ret4 p+ q, p: u; F- B+ p: A
  93. Set4gb  ENDP- N6 v$ g! n4 n0 }- ]0 C) e$ ?+ F7 p
  94.        8 Y' P. \$ \6 M5 a0 _
  95. CSEG           ENDS                              ;代码段定义结束
      u: e! r9 h1 i# B- w! S
  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  \4 w/ @5 }" [
' K& R% f9 N$ A  D
option->compiler->code generation中的option选中, [X] compile via assembler
) l% e/ Q% o. G! h& ]) Y
3 |: l/ h+ _4 R4 n! @[ 本帖最后由 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 o5 h3 ]: X- Q) M
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
( U, a4 o! S# K& ]/ J3 F% \8 k  Z, V% F7 b( z% z
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
* e! W  z- R. Z9 m) l0 x- a$ ^ 替换如下,
/ K; |4 U; `! g  p: z% R5 I( vNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>5 H: x/ l% }) V( F# p9 p
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>% [% V% I7 J9 k2 \" E

) q% d4 C' m9 l9 @GDT_Addr        PDesc   <$-GDT_def-1, >
/ h3 R3 M5 y/ @* c# S( b5 u) r这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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( Z( W5 w: o1 F3 A
option->compiler->advanced code generation中的instruction set选 80386
4 ^8 }- H- {+ F
% S7 n, w$ T, L( p, u: Joption->compiler->code generation中的option选中, [X] compile via assembler
) ~! @4 m' B: q; N$ S% ^
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 9 z# H& T/ A: U# A$ d) T9 F2 Y

( i7 e$ d6 R; }4 E: U   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
9 ]  j6 Q# B. D) d; l5 G' p

3 e0 |7 e9 w7 P* d6 T! O我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 20:44 , Processed in 0.043342 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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