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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。- h2 r. C: [7 z
2 y  o# z9 }3 K" B3 I
这是C的
  1. /********************************************************************
    9 I+ s- h7 }; t8 W
  2. *    File: DOS4G.H                                                  *# G) E& D/ g$ }; U2 ^8 s! c6 j% B' o
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    % E% `: a7 J& z$ g
  4. *                                                                   *
    : m  y6 p9 a6 ?2 k
  5. *    ========================Title===============================   *6 I3 x' t/ n7 m, U
  6. *        这个函数是让系统进入DOS 4G模式                             *
    + f# a' O  L" T6 b, D
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    ! p/ k8 ~9 e# i, n# E4 G
  8. *                                                                   *- m: i' n0 L3 ]+ D4 \" `
  9. *       使用: openA20(); set4gb();                                  *
    % }( w1 b: x8 `; f4 z' J
  10. *                                                                   *
    , g0 w) p: O! A( t/ K# J
  11. *   ===========================History==========================    *
    $ Z+ }* r3 }/ z7 g$ S
  12. *    author: bini                                                   *
    1 S) K  I) E7 l' @  w
  13. *      date: 2004-11-30  Frist version.                             *
      _- M& P( b7 `
  14. ********************************************************************/1 y, K, e# K5 k7 x
  15. ( R$ T: K% Y1 m4 z; G/ B
  16. #include <conio.h>
    3 k  K: t- m1 Z0 ~8 _  s
  17. #pragma inline
    ( G  r; X' V+ W, p2 o9 _$ _3 _. V
  18. ! ?. J+ k1 \; @
  19. /***********************************************
    3 L8 L5 d0 G% b6 t
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    9 B8 r2 A) _* z# w
  21. *    第二个为一个数据段,没有代码段。           *- s3 \9 A5 C! W# X) F% [
  22. ***********************************************/
    ! ~! ]" o0 ^7 p' K. O
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    ; v- }! M+ s+ q5 r) {6 j5 s
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    * p- n. Z1 k+ O! I
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    * M4 {" K, [& F: {! G
  26.                                       */
      ]9 K- e6 Q2 Y2 b: V6 S) d6 j0 Y) ?
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    5 r$ t( a+ L# _
  28.                                          最高字节为 base( bit 24~31 )' c' v9 D) q! X/ `' f0 D
  29.                                          
    ( u  F& T5 h4 Z  T. d$ l
  30.                                          属性Attrib = 0x8F92
    6 _; g* }8 A! s/ ?' _1 s
  31.                                          
    , `- m4 s- L$ O  f2 x& B
  32.                                              属性位Hibyte低四位为
    8 J6 z1 `* U" n) q5 M
  33.                                                  Limit( 16~19 )=F
    $ [: m5 y& r% f! {
  34.                                              属性位Hibyte bit7 为粒度
    " `# k7 m8 S5 X- e/ L% ?
  35.                                                  (值1=4KB粒度)
    & l# O# K4 v! W" `
  36.                                                  8F & 0x80 = 15 V' l) s3 }9 \
  37.                                                 
    0 ]4 p1 ?/ l; H/ p5 N" s
  38.                                              属性位Lowbyte低四位为段类型,值=2
    ( N7 A/ {2 a4 z) Q- x- w7 k
  39.                                                  表示为可读/写段9 j, h# T; B9 M: Q
  40.                                              属性位Hibyte高四位=9,bit3=1表示:4 l: }( d6 @& Q2 H! s) s
  41.                                                  描述符对地址转换是有效的。0 h6 P& f1 K; ~
  42.                                                  bit0=1表示为:
      o1 ?% G8 o8 Z# g+ w
  43.                                                  系统段描述符。而不是门描述符。
      j9 O8 C2 p$ b5 l) Z8 Q8 j7 ^
  44.                                              9 X, n0 Y0 I$ I* J6 T3 h
  45.                                          */
    & z& }/ q# H# z% f
  46. & Y( y( U9 S, z# L6 b! T6 z
  47. /****************************************
    3 c- E  G7 v6 @7 }6 F2 W
  48. *    GDTR寄存器, 48bit=6bytes            *; M) @+ G- P6 X' u& B# H& V1 L
  49. *    +-------------------------------+   *! J& }- h, w5 v, n9 P
  50. *    |   32bit基地址       |16bit界限|   *3 P4 j9 K5 q( m2 g9 g
  51. *    +-------------------------------+   *
    6 p  f9 P$ F! t) C/ ~  o
  52. ****************************************/
    2 m" S) M3 d3 ]. T: U
  53. unsigned char GDT_Addr[6]={0};, g5 ?7 n( V' z1 H+ |+ o

  54. ! y$ v2 Y: I% Y+ E" Z' \
  55. /****************
    1 u: R4 q3 |& E1 t6 D; j8 \1 e  f
  56. *    打开A20门    *$ y& |8 T) W1 z3 [
  57. ****************/
    # ~% R" e. R5 S  z/ _/ w
  58. void openA20(void)! Q/ G% E8 N( j' N
  59. {, J' p5 p7 y. B& Z3 P5 q  K0 S3 [
  60.     asm{0 I, j) P% q4 r% q
  61.         pusha, Y& R) _" ]0 R% c7 s5 U
  62.         in         al, 92H. F- f& O4 I+ c: d3 P. T
  63.         or         al, 0x02
    0 h5 h( G8 S+ s0 a7 v
  64.         out        0x92, al' m. v2 ?0 a1 a" G' c+ ^
  65.         out        0xed, al
    6 m* }  d2 m+ L% `5 ?
  66.         popa: c1 E! c) n# q
  67.     }
    ) O; Q6 S1 r) w
  68. }
    6 K* r$ n6 f% f" V/ e

  69. & _; z1 e: j9 V8 l
  70. /***********************************************: i! F/ }( `1 H. f; Y! ~' l
  71. *    函数功能:进入DOS4G                       *
    ) b* N9 A( ?5 [5 O( j
  72. *    ====================                      *
    $ l6 p+ k/ a7 c# _! q$ c% j
  73. *                                              *( V! A! u1 [6 Y, C) y
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *3 h  T; }& W" l4 ?
  75. *   如:                                       *5 G6 N$ V3 m. L$ X- ^8 |8 y
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *- T) y' R, H2 e) T0 c% e
  77. *       表示为 2个GTD                          ** a5 q" R+ O8 Y4 w
  78. *                                              *( `) f" z; i: `
  79. *    选择子为所在描述符内的字节偏移。          *
    . ?" F. C$ s* f$ i& c7 J6 A' R
  80. *                                              *9 K' e0 ^! t  x4 q3 g2 }4 E9 J
  81. ***********************************************/! Y: p: ?/ j4 F, S" u
  82. void set4gb(void)
    ) R2 t; O* X/ X5 ~
  83. {
      {5 P6 }: A3 y$ F7 F
  84.     asm{
    , ~+ Z1 \! Z- A! Q' x0 \
  85.         cli
    # T2 r8 ~; p: H( c" S& Z' d6 d, ~
  86.         /****************************************
    8 o5 [9 k/ U! }9 [# f1 O8 a
  87.         *    GDTR寄存器                          *
    7 m& Z" z9 m) L# t: `3 f* Q$ N
  88.         *    +-------------------------------+   ** M1 y  O0 |* ]$ s" f
  89.         *    |   32bit基地址       |16bit界限|   *
    2 ~9 c$ N( z3 S8 A
  90.         *    +-------------------------------+   *
    0 T0 {- |6 n+ b1 B8 n: ^
  91.         *****************************************/
    . O& C; Q9 u3 a4 w5 `8 M0 V# c. p% P
  92.         /*********************: T* O5 |, Z& W' I( C3 g
  93.         *        得出段界限       *
    + s" s0 \+ \# {& \0 K
  94.         *********************/
    0 T- S7 f4 H: j! |7 v( Y
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    2 D4 D4 r1 H# i; b: f# a* P
  96.         /********************************************: F* E1 K4 K( l- L7 O* D+ c$ ~3 ~
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    $ {) k$ z$ K/ b9 @% K3 Q( B# P
  98.         ********************************************/: l  _6 ]' ]9 ~( h6 G
  99.         mov        eax, ds
    1 y) n% t% Q3 Q9 Y# t- a6 S
  100.         shl        eax, 4
    4 w- J6 v: v( _5 U& d, q
  101.         xor        ebx, ebx, ]9 `6 I1 F, [0 y/ f( t: \: k
  102.         mov        bx, offset GDT_def1 Z. j/ l- n0 }0 G) }' o" Z
  103.         add        eax, ebx
    , A! h: V& M# q8 _/ T/ Q# n; D, e
  104.         mov        dword ptr GDT_Addr[2], eax
    / y& z( ?4 b, N, j$ j. b4 `" ]
  105.         lgdt       fword ptr GDT_Addr. r$ _0 H5 w" R# l0 G, n
  106.         /********************
    ; ^+ Y) D6 B5 q& j+ |
  107.         *   选择子偏移      *
    . ?" ?5 o3 f" E* _. P
  108.         ********************/7 I& a9 t- A# x$ Z6 ^9 q$ g
  109.         mov        bx, 83 Q6 [4 T% s( X- K/ F% }
  110.         mov        eax, cr0
    ) S3 k# [1 j8 C; i7 t% i. T
  111.         or         al, 1
    6 M# c6 {: u, f4 V8 M" h
  112.         /**********************
    / \* V/ W/ R. x
  113.         *     进入保护模式    *! l! P7 q: A- k$ A) r
  114.         **********************/9 O, g8 ?$ n4 w, e/ ]$ }  j
  115.         mov        cr0, eax
    : Q& `- Z2 A* D! Y8 g
  116.         jmp        pMod" ?" K' L$ o6 V8 c
  117.     }' O* W" M" \, g
  118. ' s2 J/ ?; `2 q4 K% N9 ^
  119.     pMod: asm{
    2 ]/ K, ~; T- o9 |* s+ M4 {+ A. v
  120.            /************************************************************  o8 t/ Y7 s4 \1 a; X% j$ M
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    6 N# C  P$ C+ M& C+ R% x( A
  122.            ************************************************************/- Y: k, ~( q" B7 s  H7 ~1 m! n
  123.         mov        fs, bx. x8 ?; W. d7 Z/ j. t2 N
  124.         mov        gs, bx& S4 @+ p; S! a6 w2 \+ I
  125.         and        al, 0x0FE
    , Z5 V; U* k. L# I6 O/ x
  126.         /******************% i  |/ H% J8 x# P& `( x1 P& |
  127.         * 进入实模式      *
    : y3 t4 Z# [. h* Q5 _2 V
  128.         ******************/6 @1 b& B9 K# D  C' D% d$ T
  129.         mov        cr0, eax
    ' b7 S0 I" X0 a( T. `' ?; j) U
  130.         jmp        rMod7 Z6 v3 `* W+ H% }5 i3 v
  131.        }
    : A* c0 o: p7 L; M

  132. 5 X# S; b3 a5 J7 y
  133.     rMod: asm{, V' |( I; z( ?1 V* u: N
  134.         /* ******************************************************************
    ' e% \# z7 ~8 @1 u
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *% m# T9 [2 y6 Q! A; H& U
  136.         ********************************************************************/9 w; V4 ]7 L+ x: N7 w4 w8 G
  137.         mov        ax, 0
    , P$ n: J. y5 |+ b
  138.         mov        fs, ax
    " ^* f' R1 h/ @! s, Z
  139.         mov        gs, ax
    7 \/ U. Y" S8 r# J9 Y
  140.         sti
    3 j( ?* @% x+ x0 d8 F
  141.     }; T$ r. i0 k8 C5 J8 u
  142. }
复制代码
这是asm的
  1. ;/********************************************************************% l+ R% r6 b( d, g5 L9 x
  2. ;*    File: DOS4G.asm                                                *
    % o( F2 R) L' `/ J+ }+ q
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    : a/ o( {7 e# Y4 ?
  4. ;*                                                                   *
    " j( {  E2 K1 t2 A/ Z
  5. ;*    ========================Title===============================   *6 e, N/ b  |  C# a. q
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *' H  t' {+ m0 J( @9 Z
  7. ;*                                                                   *
    2 M7 n1 T0 o' w( |3 s( ?
  8. ;*   ===========================History==========================    *, b* c  t8 x/ O* N  y: X" i
  9. ;*    author: bini                                                   *
    - L) A" m9 W4 G6 s9 x, b
  10. ;*      date: 2008-10-08  Frist version.                             *7 g) |6 S4 g- ^/ d7 B2 @5 ]
  11. ;********************************************************************/
    9 c* ]) }6 U! [3 Q, j! i
  12. .model small
    * W5 Q; z1 n) h+ F% F5 V
  13. .586p5 I2 I+ W8 V& e2 b( E, q+ ^

  14. 3 i# S/ @8 Y, s0 A% U* p
  15. DSEG  SEGMENT   USE16                 ;16位数据段, ?, A  [* I) X9 j+ j0 w- u5 S1 |

  16. 0 f3 j4 R+ h+ e1 w9 J1 X4 P' q
  17. DESC            STRUC
    # y; y  T6 o* M
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    / X. ^0 O: M8 Z  R
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    6 A2 |3 |$ N& Y( q) X+ h0 t
  20.         BaseM           DB      0 ;段基地址(BIT16-23)# f. j/ }5 @' ^. p2 r
  21.         Attributes      DB      0 ;段属性% {7 {( ~9 m& C* Y: f
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    ' f, s! _4 @- w* B) R
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    ) s& E- y( a& c3 p% S. M, q, H
  24. DESC            ENDS
    ; z$ u1 K! K6 Z& H7 ]

  25. 1 T" S7 Z1 ?4 U* x5 C
  26. PDesc           STRUC
    0 {3 [/ W" I( J2 M$ }5 f% W
  27.         Limit           DW      0 ;16位界限* a" F9 w3 J( i4 I8 F, ^
  28.         Base            DD      0 ;32位基地址
    , v7 R& q; W6 q  d4 e3 l4 o) [
  29. PDesc           ENDS
    $ [) [# L, d7 x/ g# M: L- B4 ]
  30. / g( Z* P( d, o9 ~/ R, f1 A
  31. GDT_def         Label   Fword
    8 L' d/ E1 ^/ _! B4 O5 @
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    0 ]# S8 R; C; o9 I3 Y( @
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ! ^/ O9 U$ N5 L/ ]  x2 ]; h
  34. 7 X* @' H+ i" m+ o# d. T$ d
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    5 N4 R) q1 V5 F2 o% w
  36. DSEG            ENDS                          ;数据段定义结束
    % N. W% ^$ V1 e8 M+ q/ A: m1 }

  37. 9 j6 A& x1 T5 V- Y
  38. CSEG            SEGMENT USE16                 ;16位代码段1 @$ b$ Y) m! i
  39.                 ASSUME  CS:CSEG,DS:DSEG
    8 g- s' b, ?3 K$ \
  40. .Startup. P" R6 Q7 g4 q5 S
  41.         call      Set4gb
    + O9 j8 L' S' y! e, C8 b! p
  42. ;
    : ^& a/ s. x9 U# W8 |/ Z7 J
  43. ;       fs, gs即能访问4GB空间
    2 M( [2 p) [9 U4 a& b! s) \+ S
  44. ;       write your code in here.8 c5 w4 `6 u$ f$ p8 p9 E
  45. ;
    # B4 y' K& I/ A, K. c' Z/ O
  46.         .exit" W- |7 v1 H) j3 Z6 v
  47.         9 \0 R. G: ~: e8 P
  48. Set4gb          PROC      NEAR
    3 l* o* B  f, o4 z" v& S- b
  49.         in        al, 92h
    0 K: O, L, ?8 E3 r( F9 d7 H
  50.         or        al, 002  J8 Y. ~7 @2 a! L
  51.         out       092h, al
    : ]: ^+ N5 D+ a; @- M. t7 x
  52.         out       0edh, al
    ( P8 Q. m" X5 z4 f! y4 @

  53. , O5 t3 i% `# {: t
  54.         cli
    4 R" @6 Y, n( `- b2 b
  55. : q5 O% T: _" U/ ^$ f8 R1 m* w
  56. ;        mov      word ptr GDT_Addr, (2*8-1);  M5 I) `) e2 e4 B( _+ r6 H/ }' y

  57. 2 n6 [3 ]+ l; `7 }7 l4 s$ @) _
  58.         mov       eax, ds5 H: R% {( ^4 U; f. }, Y8 S# R/ j1 h
  59.         shl       eax, 4
    9 U$ O( y2 @( W6 a
  60.         xor       ebx, ebx* |* r# Q% U0 c2 a
  61.         mov       bx, offset GDT_def7 }4 n- r: k: H" B- O$ z
  62.         add       eax, ebx
    8 F0 Y# T* `3 ]
  63.         mov       dword ptr GDT_Addr.Base, eax
    6 D- o, I: l1 @- k- u0 s
  64.         lgdt      fword ptr GDT_Addr
    9 M, w8 [; T2 `, \5 _
  65. 7 Y5 h; K1 `* Y( q( Q/ F; \: F
  66.         mov       bx, 8( P: R. }6 g; l, s7 u( M+ E: c
  67.         mov       eax, cr0$ P0 r% i. I, s  V3 |3 w
  68.         or        al, 1# x4 Q  S# Y; u
  69.         mov       cr0, eax) C, k' q  A  n7 G& x- J
  70. " @7 |6 A' {/ X+ X# Z
  71.         jmp       pMod* Q6 Z% T/ m2 F% T* b+ B7 a
  72.     pMod:& g3 C, M* L  {1 J% Q: \4 N, P

  73. , x3 M+ ^0 K; a9 f) m
  74.         mov       fs, bx, E- `4 M( m) t8 q8 M3 Y/ i
  75.         mov       gs, bx
      `: ?5 N, O6 ^. @& R1 _4 n6 T% q5 T
  76.         and       al, 0FEh8 h/ o3 V$ s0 X" D+ B+ A
  77.         mov       cr0, eax3 w' c1 t3 i% r& U0 c
  78.         
    4 @5 |1 M: o1 G; I. [7 k* f1 f+ B
  79.         jmp       rMod: u) a) d1 u2 X4 B
  80.     rMod:
    7 m+ ~8 ]- U8 m( x9 G' u+ ]6 @( u
  81. 9 I# D7 h3 @/ T1 c5 n5 {6 \  ^
  82.         mov       ax, 03 b% J4 F  m8 A) b
  83.         mov       fs, ax7 H/ }, Z: m% N0 g9 {- c$ u
  84.         mov       gs, ax
    9 T" u+ q: K' R6 r: ~+ X
  85.         ) t7 F( k$ p8 t; w0 U
  86.         ; 在2M的位置测试写一下数据7 ^$ t3 B% g% V3 I  B7 {  Y
  87.         mov       esi, 200000h
    ; c6 A; |5 U- g! y
  88.         mov       dword ptr fs:[esi], 055aa55aah6 O+ f$ i/ m. q1 s, V" j
  89.         ; 用RU去看看200000h的位置是否是此数据....
    . T0 y% f) L4 Q9 C$ o" B7 H
  90. & A+ h3 w* V% N. b
  91.         sti
    3 S5 I* R1 D. E: t! r; @0 ~* s: l0 U/ M
  92.         ret5 I: o, P/ c' ~8 ?1 V9 J; {
  93. Set4gb  ENDP, e+ c# ]1 L: J$ A  U9 N
  94.       
    $ z8 F% y/ y  w
  95. CSEG           ENDS                              ;代码段定义结束
    % h; X1 R4 ^) r- p
  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
+ P7 @# A3 @3 ~
2 {  B( K. d, ~5 Y5 k* doption->compiler->code generation中的option选中, [X] compile via assembler- ^6 u7 S- K( h" X5 Q& I7 ?

' f- z  p7 b0 p5 R9 P[ 本帖最后由 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;
8 X# U# @; x5 I" UData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;. v0 M* E' c5 }* {9 }

1 V7 P/ ]; }# \* vGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;: O4 o( Y0 Z; i7 P4 X. u1 F
替换如下,
5 _- A7 \: j, V3 f0 T) N4 VNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>: ^, N; Z# C! _9 m: f: A' r
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
4 V# z5 D  M& C! ]8 e" }. Z1 u9 `: W0 B: V
GDT_Addr        PDesc   <$-GDT_def-1, >
7 I2 i- I  P; Q5 C8 S6 i/ 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 发表
/ G# z3 m0 ^/ m% m7 }* y& Goption->compiler->advanced code generation中的instruction set选 803864 A+ o' b( B! s- z9 m3 S0 n* q
/ a/ |5 N5 E" ?
option->compiler->code generation中的option选中, [X] compile via assembler
4 Y# j# b, l2 J+ n" ]
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
( N- _. n/ R$ U/ C% _' m# l  j: g+ i1 [+ b4 B3 ]- B
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
9 ]% D5 g; ~# A% L% W

# M  z: a% [! U$ _我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 12:44 , Processed in 0.471342 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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