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

DOS 4G big real Mode Demo code。

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

( Q7 v( K/ v' C/ [+ Z% a1 E( v( h这是C的
  1. /********************************************************************' a( v0 A+ g0 H! N+ w+ Q' W
  2. *    File: DOS4G.H                                                  *
    . ^2 v0 {( E4 y: G8 v7 d) K
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    : }/ Y7 K7 ]% ?  u" @
  4. *                                                                   *
    7 C( v7 L! ~3 k) H7 [, ~
  5. *    ========================Title===============================   *; Q8 M% K1 A% y- y  I# x$ {& \/ d! H
  6. *        这个函数是让系统进入DOS 4G模式                             *6 O) t2 s: U% _$ K, M) F
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *  l* G  F0 G) @7 s( B4 v- U
  8. *                                                                   */ B$ |' u: B5 A$ l4 k0 Y+ J
  9. *       使用: openA20(); set4gb();                                  *
    : x4 F+ p0 y' d% z
  10. *                                                                   *
    ) y. [0 [1 U( k
  11. *   ===========================History==========================    *
    4 H; O4 |# Y9 F0 C) ?8 d) n# k2 F
  12. *    author: bini                                                   *  h" h' d8 P0 c1 d9 }
  13. *      date: 2004-11-30  Frist version.                             *) }/ l8 I+ N5 z! ?
  14. ********************************************************************/
    5 X) w) T7 j3 c) I

  15. 9 `" G9 @6 m3 \9 Z& \* ]. v
  16. #include <conio.h>
    5 @: B) o3 t- j+ J9 c
  17. #pragma inline
    + B, s* `1 C2 {- D
  18. 2 O0 w' V& Z* u  J: k1 Q
  19. /***********************************************
    1 u( J- P# Y4 K6 T+ g1 P
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *0 v, ?- a* l; T- T. e0 S
  21. *    第二个为一个数据段,没有代码段。           *6 X1 r" z1 q8 z- a1 n% A
  22. ***********************************************/
    , }; l% I# H8 v8 B9 @6 F( m
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    8 R7 `8 s5 @: w$ E' ~+ \
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, ! Q3 c5 [* K+ s9 g* V
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF + k+ n  b  T# p9 |# r6 s% }  k
  26.                                       */
    " @  C$ L5 j3 K0 ]
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )* N8 F2 l- ?" I4 H3 w1 \" L
  28.                                          最高字节为 base( bit 24~31 )& m5 H# j/ I6 S( h, n0 r4 z
  29.                                          
    " \. D( H5 q! F% h; o
  30.                                          属性Attrib = 0x8F92" z) R7 C! o$ I" `5 ^
  31.                                          
    3 I1 }, c9 U, r3 ^3 |; z1 S# r
  32.                                              属性位Hibyte低四位为 ! e7 |/ L: _9 C* N; h! Q# j
  33.                                                  Limit( 16~19 )=F
    : w" ]* ~/ U2 F6 L) r' V
  34.                                              属性位Hibyte bit7 为粒度
    8 Y0 J4 Q, T/ t8 o8 ~
  35.                                                  (值1=4KB粒度)
    + \6 m7 L' u5 X- B; o4 p; }% q
  36.                                                  8F & 0x80 = 15 M1 d9 L9 [7 N( z) x& q. Q
  37.                                                  ) i' w0 W! H1 U9 X# D0 q
  38.                                              属性位Lowbyte低四位为段类型,值=20 x: v; r5 U( o1 L3 y' {2 |% |) j
  39.                                                  表示为可读/写段8 v8 z, `" M* c; q; Q7 n0 F
  40.                                              属性位Hibyte高四位=9,bit3=1表示:8 l5 ~1 W# I# p0 u' u8 I
  41.                                                  描述符对地址转换是有效的。/ s: G6 E7 U9 B; M* O. S
  42.                                                  bit0=1表示为:0 }! G& d# J& [
  43.                                                  系统段描述符。而不是门描述符。6 j, N  w6 ^  A* p
  44.                                              
    0 w7 k5 M: ]3 ~7 p  t* B/ R" V: ~2 p
  45.                                          */
    8 I3 _5 ~# I9 U% O$ k1 I- J( K
  46. 3 }1 T: ^$ u0 h% K: Y
  47. /****************************************- p, g; I; u; A6 s$ e! v) d  j
  48. *    GDTR寄存器, 48bit=6bytes            *
    ( m; [; R! T$ k0 p3 R
  49. *    +-------------------------------+   *
    ! j: {7 o- A2 N0 R8 h# T
  50. *    |   32bit基地址       |16bit界限|   *2 G+ l4 M9 q) r
  51. *    +-------------------------------+   *) i9 v3 x- a' T$ T; G5 p3 J" x/ T
  52. ****************************************/0 {' K# z6 a6 X$ W7 w, L
  53. unsigned char GDT_Addr[6]={0};; P2 D$ X( q4 c  N4 h& ?
  54. : Z/ `" _' n& R4 D3 P( m2 u# \; P/ P
  55. /****************9 T! K" ^$ i1 O! I+ X+ [# w
  56. *    打开A20门    *
    - ?/ y6 h) T) d, b( l* ~
  57. ****************/1 q: S) w% B" w8 C! i& B7 X; x
  58. void openA20(void)
    * h! Q/ Z- `* B5 y( ~0 W- l- Q
  59. {
    " U1 i2 N( l8 f. u
  60.     asm{- S4 R  g0 I0 M4 f
  61.         pusha  L( B$ @; v# K+ C# e
  62.         in         al, 92H" @: O( U$ K0 }; o
  63.         or         al, 0x02. {! T; p. y8 U$ Q8 S
  64.         out        0x92, al
    5 E8 c( Q8 b2 J1 \  o8 n* t9 Z7 e& p
  65.         out        0xed, al
    ; ~# Y( b& ?! r; l! }/ I/ `& N# U& S
  66.         popa
      q8 w) P& l0 }! d
  67.     }
    . j8 u0 K! c1 ]8 ^
  68. }/ b  s3 q; s7 C  _7 W

  69. 9 n  v! ~6 M6 A3 m  O
  70. /***********************************************' f4 ~3 m; E, L6 l( C  j
  71. *    函数功能:进入DOS4G                       *0 }# q( R. J) u4 M! h/ ]. Y, N8 Z
  72. *    ====================                      *
    , o+ _5 x- X1 S3 K
  73. *                                              *3 I  F& I  e8 T  }
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *6 g0 w& ~" B; U9 p9 i
  75. *   如:                                       *
    0 ?2 }* U7 p2 P! c6 o: L% i
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *" F- ]) c& k  X: j3 ?0 j: d  T
  77. *       表示为 2个GTD                          *
    . C4 j( t, J. H. g/ @
  78. *                                              *( e8 _) V! m# t+ y
  79. *    选择子为所在描述符内的字节偏移。          *
    4 I9 j; e9 y+ D# y
  80. *                                              *+ A; w+ R/ m) g" l; [
  81. ***********************************************/0 f% ^0 h) W. \* ?; t
  82. void set4gb(void)
    % ?, b$ L( [& b
  83. {
    0 X9 j; {5 J( K
  84.     asm{
    3 G( n1 t9 f, ]# M/ A0 x6 K! z
  85.         cli
    * V2 X) {# C5 C6 Q4 O- \+ C
  86.         /****************************************
    ; t0 z; U& D1 A, O) M$ m
  87.         *    GDTR寄存器                          *
    $ t; R7 i/ c& W8 `
  88.         *    +-------------------------------+   *$ M# K* R, t5 S6 G6 \
  89.         *    |   32bit基地址       |16bit界限|   *
    ! n, v0 }' d3 M. m; g! h
  90.         *    +-------------------------------+   *! d% v# i. s8 }
  91.         *****************************************/
    7 T* p- f; Z3 V- j; ^4 {
  92.         /*********************( A+ J  l, g4 B) I; C. l
  93.         *        得出段界限       *
    1 w) @- j# [8 M. C4 h5 F1 F/ X
  94.         *********************/
    $ [8 j8 ~1 d0 j+ B% g- l
  95.         mov        word ptr GDT_Addr[0], (2*8-1);  j- _8 M$ v8 C; ?
  96.         /********************************************) L$ i$ V; T1 }% T. ~1 c+ |
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    7 D, E. X* M  c1 T/ V$ p% W
  98.         ********************************************/1 @. @- O8 x# f$ H, Z( Z( V0 Y
  99.         mov        eax, ds9 h8 S, i0 O3 w- g; n) [4 D
  100.         shl        eax, 4
    2 q1 |1 \7 D2 v6 H  C6 V7 }4 e, p
  101.         xor        ebx, ebx' M3 p* }, u) E. g1 }4 q3 W
  102.         mov        bx, offset GDT_def
    0 m4 [5 Y% i8 M% M
  103.         add        eax, ebx9 u* {9 c2 E: p* }$ i8 m
  104.         mov        dword ptr GDT_Addr[2], eax
    0 u: O# I! q, J  {
  105.         lgdt       fword ptr GDT_Addr3 b0 X5 l7 X  d9 s
  106.         /********************* |* y* P* i  j/ j! p0 \
  107.         *   选择子偏移      *- G: E& b. S9 b$ U  S
  108.         ********************/
    ( y$ B2 {% a- c4 b9 ^6 ^
  109.         mov        bx, 8) `/ j4 s  v& m( k, D+ i1 O" d
  110.         mov        eax, cr00 A4 ^) `" s: E6 _6 h7 c1 I
  111.         or         al, 1
    # s% R. B& m3 j5 D
  112.         /**********************
    ! W! i5 k% }; L
  113.         *     进入保护模式    *
    ) g& v+ ^3 z1 |9 u
  114.         **********************/6 u- x+ S7 d  R1 [" }8 G+ C
  115.         mov        cr0, eax+ B. s, N7 ~0 K: \2 g
  116.         jmp        pMod* N3 m  p4 f, r6 y( @1 N- G' E
  117.     }
    0 R5 G# S$ i' q4 _: A

  118. 3 W7 E, ]0 m8 T: e! G) {& Z( ^
  119.     pMod: asm{. J; p! U% c+ |2 n% N
  120.            /************************************************************" ?( c& ]9 Z; O! m$ I. j, \
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    ** s. K8 N; ^# G  _* E
  122.            ************************************************************/
    / ?% B' `( n1 c' [4 ~5 m% K
  123.         mov        fs, bx
    " Q1 j+ {# q% b# q9 O, }, ~
  124.         mov        gs, bx
    # Q# s8 h& P1 ^) w* m
  125.         and        al, 0x0FE4 c. J! W  U' s/ O4 p
  126.         /******************
    8 X+ i. A- f% W2 {
  127.         * 进入实模式      *- ]( ~# g* r9 |0 L7 y6 w/ j& f
  128.         ******************/' C& `- p6 `& O3 N
  129.         mov        cr0, eax
    ' X& ^8 p* f9 J$ _1 L5 X
  130.         jmp        rMod& Y7 o4 N) o9 C! H
  131.        }! e" ~( M+ _" M/ B6 }: L+ ]
  132. ! [1 _+ J/ b0 T: E
  133.     rMod: asm{
    + U2 m, A5 v- `" y' H( b1 m# @9 X
  134.         /* ******************************************************************% Z! ?* z+ t1 w0 s3 [1 c6 w
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    ; Z) z) {2 u+ ~6 n1 ]/ v+ B# ?2 D
  136.         ********************************************************************/# [8 ~5 b% C6 ]3 P0 K5 a- o9 H
  137.         mov        ax, 0. r, [$ G+ n( q- L0 J$ ~
  138.         mov        fs, ax
    8 m/ M2 M( v* T: z" C
  139.         mov        gs, ax
    / f/ ]0 C+ w3 I% J1 g
  140.         sti
    ' h1 l) P- A9 L: H" B& D$ J
  141.     }
    * i; [4 t/ d1 J3 D
  142. }
复制代码
这是asm的
  1. ;/********************************************************************4 l( Y7 l" H9 J3 z
  2. ;*    File: DOS4G.asm                                                *
    - O0 F) b+ `) @' d  W5 L2 {( @' F
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *' H( l1 L+ H# u) ~+ ?
  4. ;*                                                                   *5 P7 D8 v* B/ B( x+ K$ z. S% W/ o
  5. ;*    ========================Title===============================   *
    7 \, X6 |3 l% T7 f
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    8 e2 m: v' J% ~$ n
  7. ;*                                                                   *
    : h3 U$ |' k7 F2 x  a
  8. ;*   ===========================History==========================    *: g9 E5 ?! k- v. F0 r
  9. ;*    author: bini                                                   *5 S# M1 P$ [/ U
  10. ;*      date: 2008-10-08  Frist version.                             *
    $ _0 Z, u- M; l
  11. ;********************************************************************/ / r5 f% l1 D. M" B( y
  12. .model small4 x6 d( T4 ~% r3 N4 n6 R
  13. .586p
      Q7 f, y& y8 @8 v/ x6 ?8 g! q4 ?1 J$ |

  14. " C1 t) I2 K, P: s4 w0 i
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    * ?/ Z1 C/ H8 n: R

  16. $ o5 n1 |% {, D! T+ B, ?% K
  17. DESC            STRUC
    , N5 D3 W5 e0 V- z$ ^6 M
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    9 q' v- t2 l% _2 H) f
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    . ]7 _$ Y. m& m4 q2 T
  20.         BaseM           DB      0 ;段基地址(BIT16-23)! b' c6 `' j: D  B
  21.         Attributes      DB      0 ;段属性
    2 z: H% \/ R! f7 w& {! }5 V+ W& q& y
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位): v+ m# [& y! N$ x0 u4 ]! _+ [$ k$ ?
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    . B, Q) y" I5 j( q
  24. DESC            ENDS
    3 a  a- L: P. K% }1 @- y
  25. ; h7 t0 v; T2 `% p, P
  26. PDesc           STRUC
    & d% |6 Q6 K) N. C
  27.         Limit           DW      0 ;16位界限
    , v8 c8 d" g8 q8 S
  28.         Base            DD      0 ;32位基地址
    7 N9 p% S8 `# F  |( e8 O# `
  29. PDesc           ENDS; `) u; r( l, m/ T) m; {& Q
  30. 0 D5 V# @5 A4 c% y1 j7 c: I
  31. GDT_def         Label   Fword
    # Q7 o& Q+ s* c4 f8 C
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>! y4 j* m# S+ l( z% |1 w
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>5 [2 `! T! C8 k9 z6 U" d
  34. 3 l8 ?5 K$ p' F2 a/ K: \
  35. GDT_Addr        PDesc   <$-GDT_def-1, >3 |% r1 {; x& g$ G# V4 ]
  36. DSEG            ENDS                          ;数据段定义结束" u1 W; H, _" Z0 D
  37. ' q* t: p7 c* I) }- T$ K
  38. CSEG            SEGMENT USE16                 ;16位代码段  W, C8 ]- G" s
  39.                 ASSUME  CS:CSEG,DS:DSEG8 |6 z( X2 L. _, O/ c0 u
  40. .Startup0 R4 H; f) F" [0 |! q
  41.         call      Set4gb" @5 I& P7 J: @* [4 w. D5 t2 Q
  42. ;
    1 m) }2 y% w, Q
  43. ;       fs, gs即能访问4GB空间% b8 o! r+ |  C4 z) |! j6 q
  44. ;       write your code in here." ?+ y8 ?' V0 x* F+ F- e: S
  45. ;6 X9 `; M0 y  q; l9 k6 c- i1 d% O
  46.         .exit0 H% l( W" Z( i. g
  47.         
    $ ^' v9 |. z* a) [* y
  48. Set4gb          PROC      NEAR
    5 h! A( `" b5 q' ~9 d
  49.         in        al, 92h! }3 E5 s* @8 U& b  e( @1 Q
  50.         or        al, 002
    ) y# J. H8 U# ?. [
  51.         out       092h, al7 W7 w* Q! H) e2 b  D# G
  52.         out       0edh, al
    ' c2 |6 \# Y$ _1 G: C2 I
  53. 0 p! I2 V3 R4 [' F' P
  54.         cli2 }9 l5 n; R" `1 k
  55. & G. R5 G4 K+ a' r* a
  56. ;        mov      word ptr GDT_Addr, (2*8-1);+ I' f3 Q4 h: a+ e$ R* |

  57. 1 b6 v4 M; Q# V9 |8 l; z4 t2 a
  58.         mov       eax, ds- I7 u0 i0 T  p8 z3 l  o2 r) R
  59.         shl       eax, 4
    . [* X" N- O/ U: q" L! y2 }, w4 s
  60.         xor       ebx, ebx
    0 }  r$ g2 S6 f7 @( G
  61.         mov       bx, offset GDT_def
    3 f, K! H  N, ^
  62.         add       eax, ebx
    ! ?% r2 |- D8 \' A4 w$ ~
  63.         mov       dword ptr GDT_Addr.Base, eax$ a; r  j3 p$ p# G4 J- x: F
  64.         lgdt      fword ptr GDT_Addr
    1 S8 C" X4 g7 J7 o- T- }' A
  65. ( C- z  U/ l9 o% _: ~
  66.         mov       bx, 8+ s; `6 y, e. `) r) w2 V: [6 n0 [* W' G
  67.         mov       eax, cr0
    8 q1 M0 ]0 u& O0 j
  68.         or        al, 1
    . U6 P; V& V; u  l1 Z0 g
  69.         mov       cr0, eax, z; |5 Z5 Z# `1 e" V  g: m
  70. ' u; Y- d% q. w) j
  71.         jmp       pMod
    # ~9 V) I* q' h9 M. \. ?# |8 @, q
  72.     pMod:) T+ L; T0 R$ o- N

  73. : X6 A; ]1 T5 K" L) ?& g
  74.         mov       fs, bx8 C  h. T/ t. U8 z$ G4 [' }' P3 {+ Y
  75.         mov       gs, bx6 P- a, P+ O5 M7 k, y, b
  76.         and       al, 0FEh
    : X' ~% v& y( t# M0 M, f# W
  77.         mov       cr0, eax& L' Q% l3 t( V) {& F  R
  78.         
    $ M9 g# L9 r1 [
  79.         jmp       rMod
    7 Q. V+ n* R: z, p1 S- P
  80.     rMod:. D4 C, P: M4 B1 [5 f% h3 O1 D

  81. 6 p) F8 ~/ c& m* W3 }
  82.         mov       ax, 0/ O6 n3 B( l, U2 U
  83.         mov       fs, ax3 l7 ]) f3 K" S
  84.         mov       gs, ax
    + u6 {9 U1 u! _+ N: b' u/ {* c
  85.         
    7 M/ r0 [$ S8 }" ?
  86.         ; 在2M的位置测试写一下数据
    4 Y, r. z) W0 c( F# ~" [/ \: I4 ^
  87.         mov       esi, 200000h) Z9 b/ `8 W3 F9 n2 r
  88.         mov       dword ptr fs:[esi], 055aa55aah( ?& P' E' Q: @* I
  89.         ; 用RU去看看200000h的位置是否是此数据....
    1 {; t* L" ~; }2 d
  90. ( z+ @" y6 n6 U) h5 }
  91.         sti
    9 s4 H. n% n5 v, K: s' u' k7 e
  92.         ret
    3 c9 o9 Z! ^  ^) h& m6 H
  93. Set4gb  ENDP8 f% ?) ~$ K5 Y* H/ a* d
  94.        * X  ^! [3 v& a2 Z2 D
  95. CSEG           ENDS                              ;代码段定义结束2 j- B% Y8 N) X+ Y
  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% G. m* k3 K. K9 y$ ~
: F+ z3 ~) y7 ^7 u
option->compiler->code generation中的option选中, [X] compile via assembler
* p$ d3 \5 D+ k. ], g; X
7 c7 t4 G$ h) o: z[ 本帖最后由 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;4 k+ |# z% |' G& y; M
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
) K) _; j% H' l: c, E4 e& p! ~! l& X6 [# n( K  r3 \: e
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;7 N8 x- L& W" u* r% [+ P* s
替换如下,
- B6 M( q# N) T& c1 a/ O+ X9 {8 {Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
$ M" c/ ?, S2 A, x; ]# o3 J1 E5 {Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
; g3 [0 x2 S: \! `  }7 f! q) I  ?2 t6 H, {& ]
GDT_Addr        PDesc   <$-GDT_def-1, >4 y# L0 H5 ~; S& U3 x& Z' O3 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 D: q: G+ `/ ]7 F
option->compiler->advanced code generation中的instruction set选 80386  y$ r8 y& w3 n4 i" |9 V
) A( ~& N/ z* }( S9 K
option->compiler->code generation中的option选中, [X] compile via assembler

. t- D3 g6 U/ `3 N& t1 H   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
4 b! t$ i& E7 l+ N5 J3 e
6 j* u# w0 s* J: _- Y   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

  W4 k. R5 x+ C2 \- \' a0 |  ]* P: D  b: ]1 ?+ x0 C5 M  E1 X2 F5 {0 H
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;
2 L' N8 P2 D! c; W2 X- k9 @还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 07:50 , Processed in 0.078304 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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