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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
" Y& t1 T# s! ?' V3 w; I2 c5 `9 ~4 o' q  {, y+ J- F
这是C的
  1. /********************************************************************
    + C: i" N7 Y# Y) o1 _. U
  2. *    File: DOS4G.H                                                  *
    5 e* m: j- g0 [' y
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *; w; T# ~$ d8 P1 w
  4. *                                                                   *
      l! _2 ?/ r2 A, T: f, p( \2 N
  5. *    ========================Title===============================   *3 Z* n% X7 q9 c% \, J  u  E% e
  6. *        这个函数是让系统进入DOS 4G模式                             *$ g/ |2 m3 C+ V
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *' P9 L9 F3 K/ J! s% W$ }
  8. *                                                                   *4 Z$ t3 K( S/ O& e0 a4 v
  9. *       使用: openA20(); set4gb();                                  *$ Q  L# A; k6 @, d
  10. *                                                                   *
    # {2 s1 Y$ o9 G7 s
  11. *   ===========================History==========================    *) `& h$ e1 U4 Y+ U6 e, N! T. Q' H
  12. *    author: bini                                                   *: k6 p9 ?. {+ b" l, b5 I( ]
  13. *      date: 2004-11-30  Frist version.                             *
    9 W4 X$ J0 o( s: t
  14. ********************************************************************/
    + c* X$ S( I1 K

  15. 2 x% t& N; F% o
  16. #include <conio.h>
    3 B- |/ F( V7 |, A  w; v2 b
  17. #pragma inline
    . V  R1 j6 B2 x9 T3 u9 x9 t

  18. / i% B7 C4 C  c* I" B( x* K
  19. /***********************************************# q: P* r! f! z. w5 X
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *( {' [, w9 r# F9 ]' Q
  21. *    第二个为一个数据段,没有代码段。           *
    1 Z4 t, g3 o; `$ k
  22. ***********************************************/
    2 R$ ^) v8 d3 ?' u, q( @/ G
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    7 @& x% f' o2 m. c
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    . L1 [: \5 Q9 i% o, s
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    ' X. m6 K7 Q" p7 q) ~2 R  B" Z
  26.                                       */
    8 M% }6 V0 _! Y: K
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    1 A! L, v# v# Y* i8 T% ^1 d- L
  28.                                          最高字节为 base( bit 24~31 )
    ' h1 M. r& m" [  ^- z& o
  29.                                          6 Z0 ~! h0 ~- d8 L/ ~) B# Z
  30.                                          属性Attrib = 0x8F92  G& E* v7 {! K9 W
  31.                                          6 `$ p2 j3 u8 M% \7 Z: T$ z
  32.                                              属性位Hibyte低四位为 5 F5 s) `9 N8 x. O
  33.                                                  Limit( 16~19 )=F' A+ ?$ g8 f: Z2 u0 ^" k( _1 E" R
  34.                                              属性位Hibyte bit7 为粒度
    6 z; N1 C/ }9 W
  35.                                                  (值1=4KB粒度): c' @# G8 E3 [' x- X
  36.                                                  8F & 0x80 = 1  [% a1 p( i; N) h
  37.                                                 
    , j( q0 Q) q5 n" T  U
  38.                                              属性位Lowbyte低四位为段类型,值=2
    * ?( c8 B$ E8 ?) k9 s  l$ P/ Y
  39.                                                  表示为可读/写段
    * M$ O3 [' n/ r! ?! U
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    ( F6 M  y# @+ C
  41.                                                  描述符对地址转换是有效的。
    6 G" h& ]; [# \& O
  42.                                                  bit0=1表示为:
    0 |1 _3 I1 G% c: q" |* Z
  43.                                                  系统段描述符。而不是门描述符。
    7 S; w4 y/ x  k8 l' E( ?5 {+ j
  44.                                              " Z) ]  T* ^6 H3 `( i9 V
  45.                                          */) _6 G5 f2 G7 V8 i
  46. $ p2 m3 c6 Q" Z* {% \9 ^# q
  47. /****************************************
    6 V% e9 ~) o5 }
  48. *    GDTR寄存器, 48bit=6bytes            *4 T7 n1 x, L, A
  49. *    +-------------------------------+   */ R5 C0 Q) }- E( H) z/ q" p
  50. *    |   32bit基地址       |16bit界限|   *
    6 _1 ?5 m. T/ Y
  51. *    +-------------------------------+   *+ n" Y  W; ?' K/ V' J8 m* l& q9 L$ S
  52. ****************************************/
    5 Z; ]8 @. l) M2 C; @- p
  53. unsigned char GDT_Addr[6]={0};4 r; R8 s+ B% `; E7 y
  54. ; J; v; E% [0 E/ q1 [: j0 t+ y
  55. /****************4 j8 l$ b* n" W) ?. p4 J
  56. *    打开A20门    *" ^$ S& x+ x+ b/ ^  e/ W- D$ s  S! O
  57. ****************/1 ^: Q) \8 E9 K$ o) N7 J
  58. void openA20(void)
    . I# o/ X# W( d# ~* Y$ |8 @% O7 T
  59. {# z* Z: z3 G1 `+ M6 n, X! d
  60.     asm{
    + P3 R7 [% D% O+ R2 I( W8 U- ?3 s* O
  61.         pusha
    " o" h2 F6 Q: K. j
  62.         in         al, 92H
    - b" h. W) Q+ ~" D
  63.         or         al, 0x02. s$ z+ o, H( z
  64.         out        0x92, al8 B% ]8 R$ n2 O+ d+ f
  65.         out        0xed, al7 f1 \) |- w, I4 C7 l
  66.         popa2 l- U9 {# y( _, N
  67.     }9 e. S$ A2 w7 @+ M1 H9 @" V! Q
  68. }
    : @2 [/ L% Y: H9 o" m9 X5 ~. l, ?
  69. 1 ~# Y& u8 q0 W# e, e
  70. /***********************************************, W1 X( q% P% J/ X7 t5 X- x% J
  71. *    函数功能:进入DOS4G                       *
    2 E/ L8 g" v5 ?& d0 ?% X; C
  72. *    ====================                      *
    . c# i4 H) u3 ?: X+ g* K
  73. *                                              *
    ) y  R7 {% u8 W$ `
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    ) e; s- `& x; N' \3 ?
  75. *   如:                                       *
    $ A* C  s7 `8 O7 p' G3 c5 F
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
      `9 x6 Y! D- b5 c
  77. *       表示为 2个GTD                          *
    # T2 \) b8 v8 y+ G/ [
  78. *                                              *6 c0 o& c5 n9 H3 ^$ Q
  79. *    选择子为所在描述符内的字节偏移。          *
    3 h6 I! F- G4 t
  80. *                                              *0 C% k# V' ~+ C  T
  81. ***********************************************/
    6 q/ F2 K, ]/ N
  82. void set4gb(void)
    & w" t, w7 Z- m! G) z" O9 P. _2 n
  83. {. g- I& u7 n' }# ], M$ [1 _+ e; m+ T
  84.     asm{8 e3 Q7 P* V, x* ]4 c
  85.         cli
    " q$ n# }. u4 J3 V
  86.         /****************************************9 O: A/ z+ o$ y! U; ~) S  F3 u
  87.         *    GDTR寄存器                          *
    % \2 o3 }- Q7 v; s% {( O5 D2 L
  88.         *    +-------------------------------+   *
    2 o$ L3 z; y. U3 W, P) k7 ^
  89.         *    |   32bit基地址       |16bit界限|   *
    ( v9 Y, l) d6 \2 _" L" c$ c, Z: o( m4 T
  90.         *    +-------------------------------+   *8 p# a9 q9 H9 p2 C/ i: N9 ~0 |
  91.         *****************************************/
    ( Q: Z  O: _& C6 `( g6 q
  92.         /********************** N2 g5 O7 c: }1 _0 I( N
  93.         *        得出段界限       *
    ; A( Q/ u7 |" O
  94.         *********************/
    ; o% p# p4 M3 L' R! g
  95.         mov        word ptr GDT_Addr[0], (2*8-1);1 \# y- n  s1 f3 M3 i
  96.         /********************************************
    ( ^% U4 K! [  T! K2 j
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    3 k5 z# B; B1 l" r" Y
  98.         ********************************************/
    ! y9 o! K  O" h3 s' t' U/ w
  99.         mov        eax, ds: h3 h. C, Q( F
  100.         shl        eax, 45 T: R3 }/ Q2 Y/ P: Q: {1 x  K
  101.         xor        ebx, ebx
    ! S' g* [- w* |' @
  102.         mov        bx, offset GDT_def9 U& f" d1 u. _6 m* E# H
  103.         add        eax, ebx5 K  a- u. g2 L. k8 u
  104.         mov        dword ptr GDT_Addr[2], eax
    $ }% v% @2 m7 Z+ p: b
  105.         lgdt       fword ptr GDT_Addr
    1 `* V4 R1 V  l& z, I9 v
  106.         /********************2 ~$ E) j7 Y: _2 d* Y" Z$ G4 k
  107.         *   选择子偏移      *$ d, _, \8 V0 K3 Q/ [6 G
  108.         ********************/9 |' E6 j7 F0 G# g5 B4 b
  109.         mov        bx, 82 E. h# C+ Q. F% F& ]8 @/ @6 D" V
  110.         mov        eax, cr00 |- t# N/ L7 X) ?$ C  i
  111.         or         al, 1
    * E4 ]! s) U9 l9 i4 k- P
  112.         /**********************) b6 f% R! \( ^
  113.         *     进入保护模式    *
    , X! N1 f. C4 [- C  p, F; }
  114.         **********************/
    4 q( O( X, D' `% ]; f
  115.         mov        cr0, eax
    8 f7 L, M# I) L
  116.         jmp        pMod; R$ I) H0 W0 }# K5 ]' x* y' h& a+ L5 Q
  117.     }
    1 o0 t, r" K8 |  d/ Q
  118. $ Q3 M  r4 ~8 Z; w8 L
  119.     pMod: asm{1 [6 q4 l% L7 J  o  F
  120.            /************************************************************
    # |4 P2 n+ o- A1 x8 U# l. T
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *, [$ f( c# G: E1 I9 w& L. R
  122.            ************************************************************/1 @- N) ]) a& W  }5 k
  123.         mov        fs, bx4 g; _6 ?. W; t% z* o
  124.         mov        gs, bx
    1 v% Q, A0 f1 {6 \$ w+ n) T
  125.         and        al, 0x0FE( {6 b, ]) B2 W$ h
  126.         /******************
    $ ]4 R/ i$ W- p6 L
  127.         * 进入实模式      *% M0 ~0 G! J5 ~& e) K2 a* R0 R2 E
  128.         ******************/
    ( Q# z# B& K& g# k$ j! w
  129.         mov        cr0, eax+ d% O9 @0 a  I8 ~2 K: d( t, y
  130.         jmp        rMod# ^+ m8 G/ C( X* h
  131.        }
    # u1 Y. ?$ a8 Z
  132. - H) U8 R' b( A+ q# j+ O: b
  133.     rMod: asm{. }; M8 c8 b! M
  134.         /* ******************************************************************4 s5 H* |7 `# G5 T* d+ _. s% c, }
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *( q* {7 b7 S( M' n; H+ h, j4 Y
  136.         ********************************************************************/5 n' s: \9 d$ A# a% A
  137.         mov        ax, 0
    5 H4 Y* Z* |( z/ z/ v3 H/ ^
  138.         mov        fs, ax, k& e7 U% {% A$ p+ ~% q
  139.         mov        gs, ax8 s' f  }2 G$ v# I' B0 V6 C
  140.         sti
    # ]0 L6 Z0 `( d/ h- ?" _
  141.     }8 t1 K: L- G% {7 Q
  142. }
复制代码
这是asm的
  1. ;/********************************************************************- c0 M0 L2 J) J9 _' J* q
  2. ;*    File: DOS4G.asm                                                *
    * E6 O# |# ^; s( s4 ]% l+ P
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *  J) R* z* g' M8 z$ ?6 l& e8 O+ O
  4. ;*                                                                   *
    5 e( e* t( Y) ]2 t# ~5 a  ?
  5. ;*    ========================Title===============================   *) k- t. N) V* K& T* o6 E
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *( V: ~& |  e- ^% j4 D
  7. ;*                                                                   *; ^5 Q$ J8 d+ a3 n$ g7 b2 R; W
  8. ;*   ===========================History==========================    *) K2 C) p) N  @! z
  9. ;*    author: bini                                                   *
    4 ], d7 R: P3 l5 ]" p) y; {' Q
  10. ;*      date: 2008-10-08  Frist version.                             *
    0 r2 s8 b! }5 V! y$ n
  11. ;********************************************************************/
    ; _8 x3 |- T1 t" O
  12. .model small% A0 T- A. y% I4 u5 c' d; {: J
  13. .586p
    % ]6 p, {& `. S: V* W: Q7 m3 h
  14. 0 w9 o  {5 f% z
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    2 |. f$ `1 g$ j. q5 Y
  16. 5 t0 X8 ~5 k! i8 o. _
  17. DESC            STRUC) e! J# U) t6 @' g9 z9 @
  18.         LimitL          DW      0 ;段界限(BIT0-15)) z! _/ Z6 C2 `, V
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    ! H8 |, w+ [! E4 g1 h! c/ s
  20.         BaseM           DB      0 ;段基地址(BIT16-23)4 ?( n: q$ Z+ F- v: `1 F& k
  21.         Attributes      DB      0 ;段属性
    % W' N' R0 R" y, P
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)" ?4 [+ j4 V: ~2 ?/ \! t( }
  23.         BaseH           DB      0 ;段基地址(BIT24-31)8 h! u, b( k* i$ r
  24. DESC            ENDS  z5 U9 {" R) `: z) U" P, r, [

  25. - O+ v0 s* H* l9 ~; x
  26. PDesc           STRUC9 y! H. X) P9 b  i( ^
  27.         Limit           DW      0 ;16位界限- b' g: {2 \2 Z' x
  28.         Base            DD      0 ;32位基地址
    : I; ~3 S" i) j, a0 W9 Y; |! {3 w( D6 O
  29. PDesc           ENDS
    - @2 B" }! r7 ^. y
  30. # w0 l5 R; v1 Q) D/ N; Y6 f
  31. GDT_def         Label   Fword
    ! N3 X* x, n( D8 z5 {. M. b) n
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>9 m9 e% @; T. D% ?; _. ]) {" L5 {
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ; D6 T* [  S3 _% q$ f$ V) F7 J

  34. 8 }" E; S- P& S2 D2 ]5 D7 o
  35. GDT_Addr        PDesc   <$-GDT_def-1, >0 U- N9 H# {3 |! A9 t- S4 i/ h1 e
  36. DSEG            ENDS                          ;数据段定义结束
    - |' W  ~- q; N2 a# S/ W5 y5 {
  37. 3 @) J; }8 q& c9 b$ t" k* m: |; F
  38. CSEG            SEGMENT USE16                 ;16位代码段1 M# p. K& m) l8 u5 V4 d
  39.                 ASSUME  CS:CSEG,DS:DSEG" l9 w, p5 W; t; J1 B: _9 [
  40. .Startup
    ' v- j7 I* O* J; N' }% d
  41.         call      Set4gb) v! ?, m8 ?* B: M
  42. ;
    3 |" {4 J8 \+ J8 n4 w  H
  43. ;       fs, gs即能访问4GB空间
    ! d& I3 r# E% R% e- e
  44. ;       write your code in here.
    0 _; Q2 j/ K5 f# h( Z
  45. ;, p/ b, {4 m7 [* b6 X! N/ {; b- D
  46.         .exit- @, B. a; X: h; D! E+ q
  47.         
    " {% i+ a* m8 G/ c9 d4 P
  48. Set4gb          PROC      NEAR# ^9 M/ Q- `; A# @
  49.         in        al, 92h
    5 ^8 k; R5 y( X( g) T  i" R
  50.         or        al, 002
    ! }% d1 r! w, Q8 H* [; E( K) m( O
  51.         out       092h, al: d; H: i# @. U+ H0 p
  52.         out       0edh, al
    7 }. V, `+ y, u9 X4 X& b

  53.   f+ |( K8 k: V' K) k2 K( t7 ^1 K
  54.         cli
    ! f4 C3 \3 m' E

  55. ( T8 ?( y  y% \6 C- v$ ?( Z; Y
  56. ;        mov      word ptr GDT_Addr, (2*8-1);7 t1 p' _) z% @4 w, z  N0 F- c" T
  57.   y9 o: F: m3 `# u! e0 D3 {
  58.         mov       eax, ds
    * v4 P4 N, G9 w0 a9 G- p
  59.         shl       eax, 4
    * a6 ]4 t& S) h& y$ ?
  60.         xor       ebx, ebx
    8 `: K* O+ E* g& f; `$ Y
  61.         mov       bx, offset GDT_def
    # U( u* g0 h$ e( S+ z. m
  62.         add       eax, ebx
    ( ^* K9 k9 c0 ?9 |. C4 I
  63.         mov       dword ptr GDT_Addr.Base, eax
    & y2 ?1 C3 L$ h* u4 U: k
  64.         lgdt      fword ptr GDT_Addr
      s9 q) q1 F' [  h5 X

  65. . q; Y  B1 \8 p, B5 ~
  66.         mov       bx, 8
    . m; g) ]- F' ?  N7 h6 C- r
  67.         mov       eax, cr04 W$ I& @7 @, V3 U* S- U8 D
  68.         or        al, 1
    & i$ k5 q( l8 P% n6 u
  69.         mov       cr0, eax
    . c3 b% G) p8 [* c) A" C4 s
  70. & {$ e9 F( n* p: c) L$ F8 d
  71.         jmp       pMod( M0 @4 Z5 w$ a$ ~% N! [
  72.     pMod:
    : l, [4 m. b( J2 o+ q

  73. 1 x* u& K* O  x4 ]) ]
  74.         mov       fs, bx' y+ F$ p$ B( E' x
  75.         mov       gs, bx
    ) s  R" ?; I0 ^
  76.         and       al, 0FEh% c$ @/ ]5 a7 o/ t
  77.         mov       cr0, eax
    & W4 A0 R/ ?3 z& z( l4 M
  78.         
    ) x0 n& b8 c6 D
  79.         jmp       rMod
    8 i, g: d( Z( p+ Y5 y7 D
  80.     rMod:0 u( ?& f/ U5 E9 D

  81. 0 S+ c' c2 m5 j  J9 ^! @! m& ^) ~
  82.         mov       ax, 0
    7 p, X3 L: d9 T! }' i# K8 q* x1 b
  83.         mov       fs, ax
    % f) e' z! K; |  K
  84.         mov       gs, ax
    + l2 U/ ]- ]' [% S. w: B& I. D' N
  85.         
    ' [) B& b. k+ E/ J: T6 C6 c
  86.         ; 在2M的位置测试写一下数据
    " r  E# _8 V0 E0 T$ ^
  87.         mov       esi, 200000h& a; d# O& T4 O/ H7 B
  88.         mov       dword ptr fs:[esi], 055aa55aah: k9 [2 [6 r( H  G% W( n$ i& X2 J
  89.         ; 用RU去看看200000h的位置是否是此数据....
    1 C9 i# G0 y. r: o6 I$ d

  90. # M# P! P1 \# b
  91.         sti; e4 a8 f6 z4 P- i. @0 j  B  y
  92.         ret
    5 ~3 N3 x2 k- Y; o
  93. Set4gb  ENDP
    : A5 _. ?$ H- t1 w2 o
  94.       
    8 z. r* ]9 ]  ^7 z( Y- F5 T
  95. CSEG           ENDS                              ;代码段定义结束
      @3 j1 i' M( A9 E
  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  F. S+ E7 [+ h4 X7 }

5 T- R9 X' L% h8 qoption->compiler->code generation中的option选中, [X] compile via assembler- ^1 E; }" d/ d8 O) m
! |2 T# d* e$ [! ?  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;$ c+ ^& S. X' w& p
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;! o3 J& Q- l/ E- x! J

$ t* q0 T% u" `GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
+ K* m# x6 n! u 替换如下,1 A' s+ H2 w( l) d2 }) V" w
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>! y3 A7 G4 H* J" D" X6 n- [
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
! ~& ]- k( k7 s. Q) k3 y$ p! q; j5 E" f3 z- O
GDT_Addr        PDesc   <$-GDT_def-1, >
+ ^  U- `+ d8 T: s这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 : f9 L- A, c: {9 m
option->compiler->advanced code generation中的instruction set选 803869 H8 V) w, b: c. c; s

7 i, V. B9 s. ?; U4 x% \option->compiler->code generation中的option选中, [X] compile via assembler
( t" S4 Y$ v' `- w# g8 B
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
# v8 X0 k/ j) W5 Z; M+ M
2 p" r! f, C3 j: T7 A0 u   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
" x7 f2 A+ k- }# L8 S) r8 C

: E9 y; B$ x5 m4 M我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;0 O6 S2 G, U- F5 [# ]% D+ |  {
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-19 23:50 , Processed in 0.173075 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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