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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
# s4 ^- M4 y# h
( B0 l8 V% ^  v7 B这是C的
  1. /********************************************************************" s0 U1 c# ]$ V8 Q) `
  2. *    File: DOS4G.H                                                  *
    $ G% N/ D! F  E4 f( z
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *8 M) ?- x; a9 X( t
  4. *                                                                   *" |, _4 |% {6 h: |. [; F
  5. *    ========================Title===============================   *4 r3 X" V. @8 D
  6. *        这个函数是让系统进入DOS 4G模式                             *8 t" d1 m  n: y8 y5 P
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *8 X; T3 i: k3 X9 X
  8. *                                                                   *% [! J0 ^9 B1 t9 r' E* T$ C
  9. *       使用: openA20(); set4gb();                                  *1 i+ u+ a7 f: |! ]
  10. *                                                                   *
    7 r3 T, `- x: g0 U, R' D
  11. *   ===========================History==========================    *
    - a$ g- L! J/ }, U3 s" I
  12. *    author: bini                                                   *
    : m  ?! ~3 O# e$ Z8 P
  13. *      date: 2004-11-30  Frist version.                             *# v" L4 E- `: S3 n$ d
  14. ********************************************************************/" E( G' D# p4 q. U2 B* e7 m

  15.   H3 v) p4 Z2 k. C) n
  16. #include <conio.h>0 F, Y9 ~) E  f3 T) D* e& V) _
  17. #pragma inline- o0 C3 Q: }3 D; e( n/ c( J
  18. 7 F. L; j. _4 g
  19. /***********************************************9 V# G- `' K) m2 M# D- g1 w. G8 v
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    : r" T+ c; I. _1 T3 ], a0 O
  21. *    第二个为一个数据段,没有代码段。           *
    ) F, }& U: p4 q$ J9 v  i
  22. ***********************************************/+ p/ W1 g. g+ H: J
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/- g) a% M- u& h  q+ V
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, 3 m/ q4 l3 S) B& @
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    % T, Y& d. W1 p
  26.                                       */+ E% k  N1 Z: `0 l, K6 {6 w3 |
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    % n& _6 Q- |% _  E
  28.                                          最高字节为 base( bit 24~31 ): o. ~4 J" J: f! r! V; |) a3 D
  29.                                          
    ' ?% i! c3 o5 D& a
  30.                                          属性Attrib = 0x8F92
    $ m) ^2 m# C, k# h# L9 k5 [
  31.                                          
    1 y3 }- P1 K* c8 u! i
  32.                                              属性位Hibyte低四位为
    % n0 k& q* @0 S5 U
  33.                                                  Limit( 16~19 )=F! Z$ k. X8 h/ X
  34.                                              属性位Hibyte bit7 为粒度# H% `) X! }3 H' s4 y
  35.                                                  (值1=4KB粒度): D+ U1 e1 H9 K+ I  v9 N. W8 `
  36.                                                  8F & 0x80 = 12 ]! ?9 N$ ]0 @$ s
  37.                                                 
    8 l- j: I( e0 S$ s& N* d
  38.                                              属性位Lowbyte低四位为段类型,值=2: \  `+ F0 c) g& \( h  {
  39.                                                  表示为可读/写段
    / w5 A" b4 _( x3 @5 k
  40.                                              属性位Hibyte高四位=9,bit3=1表示:2 @4 a/ d7 ?. C. b7 O/ `
  41.                                                  描述符对地址转换是有效的。
    ( c& I9 E5 A" C9 O$ w$ s
  42.                                                  bit0=1表示为:
    4 ~+ }- ?- _/ J1 |9 w6 ]5 u0 v/ O
  43.                                                  系统段描述符。而不是门描述符。/ S; x! g. e- L/ z. q( u* z) Z: G- W
  44.                                              
    3 L8 f6 I0 e% p4 {8 ?5 e
  45.                                          */: X% g' t: y4 h: e

  46. ! Q8 D2 s/ U: A7 M" Q  ?! k
  47. /****************************************
    8 E8 o9 y: O4 g3 w+ S
  48. *    GDTR寄存器, 48bit=6bytes            *9 f5 U7 L8 z' l
  49. *    +-------------------------------+   *
    0 u" ]  @1 h0 s1 Y6 I& E
  50. *    |   32bit基地址       |16bit界限|   *- x2 N- f; B* k
  51. *    +-------------------------------+   *
    # c9 I8 D" ^( T$ @, g
  52. ****************************************/
    0 \! R: s0 e, Q5 M. o
  53. unsigned char GDT_Addr[6]={0};. X/ y) {  a. _6 E$ i4 H
  54. 7 [; G# K2 k% c. ^. O' N: W
  55. /****************
    ; J- y1 ^& _$ P7 W8 h7 {0 i; d
  56. *    打开A20门    *
    # u7 h! ~! T; ?* r1 Y
  57. ****************/
    ( l" p+ c' r# n* a% [6 m/ u
  58. void openA20(void)
    : q, j3 ^$ c3 E4 ]8 i; ]& U
  59. {
    3 T5 ]5 ^7 B* Z# B; k2 t
  60.     asm{
    + d4 j6 Q' E/ P! F) G! b2 ]6 i. ]3 _
  61.         pusha' V4 o7 Q: A+ A( n! y4 f
  62.         in         al, 92H
    - p) _* S; x; E: d
  63.         or         al, 0x02, Q$ p/ H: o$ G9 e. |0 \0 N
  64.         out        0x92, al& o! h5 X; q* N  c9 @1 d
  65.         out        0xed, al
    . Y! R% V( P7 G, q& ?
  66.         popa
    8 E# B0 n( W* @. _* c, V. e
  67.     }
    # e8 Z. `+ r4 e. X. N( c
  68. }3 v( G8 U5 J: F7 e

  69. ; m! [7 g9 p0 {/ v
  70. /***********************************************
    9 r3 f2 w  U4 R1 S& `
  71. *    函数功能:进入DOS4G                       *
    ; g% s2 U! m2 R! R6 S. X: L, g  G
  72. *    ====================                      *
    , Y8 P/ p8 c& f
  73. *                                              ** |6 X$ v2 }, c, t8 i2 q
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    * e+ A7 d; D2 `. H; V6 c% A
  75. *   如:                                       *# h) o1 B: v1 w
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
      A/ _% n) ?4 v- r7 ]' g% |+ s6 h
  77. *       表示为 2个GTD                          *  O7 S; |0 M7 t) {7 E
  78. *                                              *
    6 R, J' l2 e7 Y" Q' R, i- \" X, u
  79. *    选择子为所在描述符内的字节偏移。          *$ I' n2 F8 y* c( y2 S- ^; l
  80. *                                              *
    % H7 c9 m& u3 z2 n. t8 e  u$ e5 e
  81. ***********************************************/! |& L0 p' N2 V4 S* K6 k
  82. void set4gb(void)
    7 w5 S: u8 b: ?: J8 H8 h! Y
  83. {2 ]/ J  h3 B5 u/ T: I6 d' t
  84.     asm{
    ( y8 P3 T+ p5 r0 P2 q+ W1 L9 r  g8 i! n
  85.         cli
    : j9 a. B; Z8 M4 m5 j  l! T5 n
  86.         /****************************************& E/ ~) G( {# K1 c% J) h5 B2 c
  87.         *    GDTR寄存器                          *0 J, N4 \. H% t" x: }, I5 G' c
  88.         *    +-------------------------------+   *. N" `& K) z2 j0 @4 u
  89.         *    |   32bit基地址       |16bit界限|   *
    % J6 x) ]1 G  s7 L6 o: ^0 x* ]+ W
  90.         *    +-------------------------------+   *+ g" b: ^9 V/ S6 c- B7 y
  91.         *****************************************/9 x! O9 m5 X0 u, ?$ w. p
  92.         /*********************
    / N: y7 Q1 p' q
  93.         *        得出段界限       *
    $ i# Q! x; O/ ~% y/ c6 y
  94.         *********************/% d" v7 ?7 R0 U2 u! y/ o9 G- ?5 t
  95.         mov        word ptr GDT_Addr[0], (2*8-1);4 E; t" j' K6 U# G: w+ u
  96.         /********************************************: T5 f% J" Z( x7 L" }- `
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    - p1 F" X, R6 j7 J% p
  98.         ********************************************/
    $ Z% M- T7 a7 M6 |& E( q) q
  99.         mov        eax, ds8 ?8 [' q7 h* a9 T0 u  ~
  100.         shl        eax, 4
    4 D& p7 G4 r7 p8 f4 ^  U
  101.         xor        ebx, ebx1 k5 s3 h# ?5 S3 \: @
  102.         mov        bx, offset GDT_def  F. u9 P& K* p+ L, l  G3 K
  103.         add        eax, ebx
    $ [# H$ m1 F% |  g( p
  104.         mov        dword ptr GDT_Addr[2], eax1 \3 ?. b. X6 T& e9 I4 N
  105.         lgdt       fword ptr GDT_Addr- O/ `+ P  X. z/ Y
  106.         /********************$ r" W! x% }# W( |( L6 a, V7 V$ U
  107.         *   选择子偏移      *4 b0 }- B$ O9 Y5 ?0 ?- t( M
  108.         ********************/
    1 ~8 Y1 n: f. c
  109.         mov        bx, 8
    # N8 W$ z* s, S* n4 h) S7 A8 x
  110.         mov        eax, cr0% d1 R0 |" I5 j8 {9 I* ?9 H
  111.         or         al, 1
    ( V3 F! N$ |+ S1 \( Q
  112.         /**********************, v) x2 r  k- e' C
  113.         *     进入保护模式    *
    8 F7 v1 g4 {/ g0 [: [4 w
  114.         **********************/
    2 f' r' Z9 K- C
  115.         mov        cr0, eax7 x% G* r- _* [8 C
  116.         jmp        pMod: Z# D$ w! [! [' o* H6 u  Q8 }. Y6 d
  117.     }% J' x1 x, S+ D( ?; R7 V
  118. 5 q- K5 ?6 u- \5 P
  119.     pMod: asm{: U$ i' h  x; T7 ~; t& h
  120.            /************************************************************
    % G* E+ V5 f1 Q" u
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    0 _6 }3 l6 d' M* o
  122.            ************************************************************/2 @" v5 a% f- H
  123.         mov        fs, bx! W9 u3 d" G5 B! j  C2 |6 H9 J$ L( v
  124.         mov        gs, bx
      g' M5 a, B5 \- N
  125.         and        al, 0x0FE
    + r# i$ U6 t' }6 r6 Y9 o, d6 q1 ^
  126.         /******************& a  u, |4 w$ {* @6 k4 S  m- g: ~( H
  127.         * 进入实模式      *! c% H$ |+ I* O8 P! @; L
  128.         ******************/( t* k' i) ~7 h3 Y
  129.         mov        cr0, eax' l  H7 \9 [5 T( ~- h; g' M2 c
  130.         jmp        rMod6 X  p. V* ]& n# l% D$ j
  131.        }+ d4 T. D- i' s6 v( T

  132. * a3 O" h% @  j7 P- F7 v
  133.     rMod: asm{0 ^) G: E0 e1 p3 Y: v! I. K
  134.         /* ******************************************************************
    ! j4 l8 y& l5 o6 t( c
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    9 a; Y8 n7 b' `1 a' V+ I! c( E
  136.         ********************************************************************/
    + }( T) v4 p  J  N$ O% g
  137.         mov        ax, 0
    ) o6 C, G8 Y( H: a* [( V4 X
  138.         mov        fs, ax
    9 t. L& W  |8 E, g; n
  139.         mov        gs, ax
    7 h5 j, ]9 ]/ k9 O3 ~1 P7 ~# C& m
  140.         sti
    ' u- A5 r! `9 z6 `1 K, X
  141.     }  ]1 o) I: Z& o* N" Z
  142. }
复制代码
这是asm的
  1. ;/********************************************************************9 D0 p' O( T) h' c5 k& T3 L0 |
  2. ;*    File: DOS4G.asm                                                *
    / G& R% |# Q9 C
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *9 e7 \9 @1 Q5 T" _0 W8 V+ p
  4. ;*                                                                   *
    ) f1 K3 D; V7 S! S
  5. ;*    ========================Title===============================   *3 w- ]6 L$ t) Z& ?3 u* k$ v" J
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *6 T* q4 Z, Z/ P# z. {% m# h( L
  7. ;*                                                                   *
    4 N6 M" Q; R& t
  8. ;*   ===========================History==========================    *6 O( g$ I  h! L- \1 m# R( f4 R
  9. ;*    author: bini                                                   */ F. _8 E: {0 t3 u5 `
  10. ;*      date: 2008-10-08  Frist version.                             *
    2 N& o( T/ |0 j- a% K. N
  11. ;********************************************************************/
      h1 p: v) X  d. R
  12. .model small
    ! e1 u, R# G$ ]" g# ?: R
  13. .586p
    / j1 c7 B( I  N) n& L  n
  14. 5 n5 h8 [& A) C2 \6 T
  15. DSEG  SEGMENT   USE16                 ;16位数据段- Z& Y' x2 @9 I2 _8 {/ [3 U

  16. ( X) {+ Y' k) w2 I
  17. DESC            STRUC6 L0 d7 Y! X7 O3 k0 T- _$ t
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    8 }( l' h, r$ Q9 d( A
  19.         BaseL           DW      0 ;段基地址(BIT0-15)/ C( F; Q3 S  K) f
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    $ R/ p4 i4 a# E" |
  21.         Attributes      DB      0 ;段属性6 }- K) V: `/ |8 _1 o/ H) H2 \" F
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)# Y- s& p( ^) `5 {& ^2 [
  23.         BaseH           DB      0 ;段基地址(BIT24-31)3 c: ?: W. A4 |' R( J
  24. DESC            ENDS
    % P+ G* [7 s- A& Z8 W, u& m

  25. - |) x/ X- [3 Z8 k
  26. PDesc           STRUC
    + V% v5 z, ?; \7 v
  27.         Limit           DW      0 ;16位界限
    6 z6 W' S( E$ X  J8 ^
  28.         Base            DD      0 ;32位基地址
    # C" R3 ]: ~- `) r4 T, Q5 t
  29. PDesc           ENDS
    & u+ S4 `! f) z+ ]) O8 J( Z

  30. 0 @8 Q* u( `  W$ r5 j. ^7 |
  31. GDT_def         Label   Fword
    - N& H" K/ h3 m' i4 J
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>+ t+ R2 z( x) H, N1 L% o
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>  M6 w& l) l+ P$ {. p: y7 K

  34. : w: M3 x% l8 i, n$ P
  35. GDT_Addr        PDesc   <$-GDT_def-1, >) z- E3 x8 {: g5 z; V* n1 o
  36. DSEG            ENDS                          ;数据段定义结束
    % {! h) F3 g1 {4 B$ G
  37. 1 {4 |" Y% z* q1 U2 v1 t" d
  38. CSEG            SEGMENT USE16                 ;16位代码段$ @6 ]$ T/ v; C( u+ _; _
  39.                 ASSUME  CS:CSEG,DS:DSEG+ b; b0 v/ H7 ^1 M' w  ?" b
  40. .Startup0 R# s1 G$ x# w
  41.         call      Set4gb3 _& x' O9 b' B6 X4 a4 i
  42. ;2 Q& T% C3 y8 _
  43. ;       fs, gs即能访问4GB空间
    5 t/ q$ c2 W6 Z1 G; a
  44. ;       write your code in here.
    2 h( x" G$ J1 ]$ u  D
  45. ;
    . q6 C; D8 v8 u  v& V9 B; {/ ^
  46.         .exit
    0 Z2 {; g' j! h7 D
  47.         
    : P6 R# Z, o; l5 s+ ?0 k$ w
  48. Set4gb          PROC      NEAR
    : J2 R  p9 O$ j; S/ Q/ d
  49.         in        al, 92h! h" J% S2 r: L- T. ^
  50.         or        al, 0020 x  d5 b' d' o* r* P0 i+ B7 _+ j
  51.         out       092h, al
    ( ]5 D* R- G4 l1 r  j9 C
  52.         out       0edh, al. O+ c0 Y0 p3 |. Z8 q% A7 u1 @

  53. % T4 R- t5 @* _% ]& |2 h) T+ c
  54.         cli. R- i" _( m3 B6 w  A. |
  55. ( I: k' A3 x: w; `6 b
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    & V+ G' A' g. x2 [+ G/ L9 V

  57. 3 B3 x- R2 \8 c' ^
  58.         mov       eax, ds
    ; b# N" ?2 k, V! X9 s$ b0 k' x" {
  59.         shl       eax, 4* Z8 l4 P, O" i$ k4 [& K7 [9 u- n
  60.         xor       ebx, ebx
    * m+ F+ c& ]- h3 U; V
  61.         mov       bx, offset GDT_def! \" K8 t  R, j5 R$ ]- G: i8 A8 y
  62.         add       eax, ebx
    . L# p1 d( P6 H- w- z3 u
  63.         mov       dword ptr GDT_Addr.Base, eax
    3 ~# g( H9 a1 C5 M: w' N  J
  64.         lgdt      fword ptr GDT_Addr
    7 R1 Q5 C, e, k. Q& v5 k" u( ]! f
  65. 2 s9 m3 a! r$ A( O0 A+ g& b
  66.         mov       bx, 8
    + P. s0 h+ H' \9 j& B
  67.         mov       eax, cr0
    0 g' K% F* ]3 }6 n* _
  68.         or        al, 1# k( \  c* F# P1 J: s0 ~
  69.         mov       cr0, eax* o; y, m3 t1 \

  70. 1 p! d3 o# E$ l8 N5 u) u# r
  71.         jmp       pMod
    ! }& [0 Y% }, K& ~+ O
  72.     pMod:# ]- o% i8 J7 p# f: j/ o! o) l

  73. 2 m* p7 s3 M/ o0 c+ _
  74.         mov       fs, bx
    . q" ], e8 _) k5 K
  75.         mov       gs, bx. m  g/ z" }- }9 H( T; W0 }5 H
  76.         and       al, 0FEh
    3 p! a* p! g3 c& I5 L& p5 l% S& u
  77.         mov       cr0, eax
    0 M, ^# y7 q3 i& B6 v
  78.         9 S- Y9 N$ C! ^9 G. `% g
  79.         jmp       rMod4 K, R4 }2 i6 n5 Y
  80.     rMod:9 A2 t8 Y" v, W
  81. 3 U9 [4 T% o4 L
  82.         mov       ax, 0, e, }' ]7 ?$ ~* B+ T3 A
  83.         mov       fs, ax
    , X. N. p: e) {, C, p
  84.         mov       gs, ax% v- P& k# C" h7 h: B$ n4 G( m
  85.         
    . `8 R; c# ]& p) Z+ d
  86.         ; 在2M的位置测试写一下数据
    $ ~9 L5 y* C  ~
  87.         mov       esi, 200000h
    ' H$ J# Q0 b/ G! E& j
  88.         mov       dword ptr fs:[esi], 055aa55aah3 o# L( l5 g5 z& h
  89.         ; 用RU去看看200000h的位置是否是此数据....
    , s3 h4 a4 u. q- U7 R- `

  90. ; P) f% H: I; F
  91.         sti
      d! t/ ]8 N3 e
  92.         ret
    # i: q; [& h# r: X/ r
  93. Set4gb  ENDP. K  N5 b/ C+ W4 C; X4 S) ?6 j" k  m' h
  94.       
    3 s# W' Q; a1 E! B4 {& D' V! Z  G/ t
  95. CSEG           ENDS                              ;代码段定义结束
    " a2 D5 l5 p, D
  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
5 m+ K, s  Y, ?$ `5 [( M6 d9 A
7 ]- x7 P  q3 J; joption->compiler->code generation中的option选中, [X] compile via assembler
" Y" h- ]% p$ ^1 J* M* A1 r3 }  P) H& Y1 ]1 |
[ 本帖最后由 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;) \3 n  c# G  S4 q: Q
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
/ t  K: A; N3 ], |/ F! m
2 O4 s2 g+ w2 ^- _9 XGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
2 T, k/ |( c: n5 i+ h7 D" _ 替换如下,- r0 J$ V9 G+ K6 W5 ]* g5 x7 q) Y
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>5 H# Q0 r) n6 \: Y  k4 c
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>! U4 |. f7 i! |2 r) G9 g: q6 a
8 Q% K% ?" F) ^
GDT_Addr        PDesc   <$-GDT_def-1, >; j$ Z$ o4 K( [8 Q/ h
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
* A$ |+ [( C7 w+ |option->compiler->advanced code generation中的instruction set选 80386& ?/ H" k, m2 ]

& J) `$ o) l3 }, Y* Loption->compiler->code generation中的option选中, [X] compile via assembler
. s7 q  K, g  s  `
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 % Z( S( J+ v& e/ i5 A

# R  Z4 W5 z7 E2 I- {; K   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

) \) [/ }+ I6 g& v  E6 v, g3 b" {# {
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 07:18 , Processed in 0.034017 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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