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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
7 j+ l3 E' t% A( z5 x0 `% D
3 `  M, `, R6 r+ u6 K- ?9 R这是C的
  1. /********************************************************************; C* L" \( s  w) T  ~) y/ o) T  e/ k
  2. *    File: DOS4G.H                                                  *
    ( |* H$ N! z$ v$ x' ]
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    + V/ t& _4 X  w* Q4 M
  4. *                                                                   *
    # U: q  l( V( p- t1 w- m8 r
  5. *    ========================Title===============================   *8 m9 B- ^0 T' y
  6. *        这个函数是让系统进入DOS 4G模式                             *
    ( P; W8 D# l; r5 R% m) i  \
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *, u; m$ k2 v& P9 Z5 e( k
  8. *                                                                   *
    ) X* O; j9 Y% q- ^9 ^% W+ @# a
  9. *       使用: openA20(); set4gb();                                  *. ~; n- \( ~+ S8 P
  10. *                                                                   *, Z' g- d! I  E2 q/ \9 ~
  11. *   ===========================History==========================    *
    8 B7 A0 b, \0 K) v9 W$ H
  12. *    author: bini                                                   */ q! |. |  \" d9 \0 ^! X
  13. *      date: 2004-11-30  Frist version.                             *9 C/ B5 W  {5 V4 u4 Z
  14. ********************************************************************/
    / B& R" F! {4 k2 b# A

  15. - r9 _2 m+ J: m% O: _' p2 W
  16. #include <conio.h>
    * j% H' I% c* ~# C+ N
  17. #pragma inline4 l0 r! d2 j& D) D0 A+ p

  18. / j! L; j* E- m- U9 X) D
  19. /***********************************************" K: H( N. i8 H) o  J$ f
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *. Q' T( M# h) `8 A' r3 _
  21. *    第二个为一个数据段,没有代码段。           *
    / Z" ?1 V  s4 d/ d
  22. ***********************************************/
    + S- N$ T% y. `, v" B
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/! I5 Q0 N2 h+ J6 W2 @' `  }
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    ! P* g9 n6 c6 H" l
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    * }, O2 A" f7 e" b, L5 @" \8 Z
  26.                                       */
    3 f2 |# I2 V% l2 q, H4 ?3 _2 L6 O7 j
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 ): _# ^2 @& a3 w0 D: \8 }) Z
  28.                                          最高字节为 base( bit 24~31 )
    8 H" p2 R1 G) P/ m* D
  29.                                          
    ( j$ t5 i3 l" I/ C  J
  30.                                          属性Attrib = 0x8F92; x" N8 s5 d0 l4 A' {7 u: K: H8 y
  31.                                          9 X( b( m$ v" ~+ R
  32.                                              属性位Hibyte低四位为
    2 J1 D" j1 n6 w) t( N+ I, b0 L
  33.                                                  Limit( 16~19 )=F2 G" X" G3 T( m' ]6 O: @. y, t5 @2 n4 Z: b
  34.                                              属性位Hibyte bit7 为粒度
    # J6 X& p& M: J& W7 i
  35.                                                  (值1=4KB粒度): c! w$ l- Z! J+ a; R
  36.                                                  8F & 0x80 = 1
    8 l) C+ k8 b- [/ m. U! E: Z9 E
  37.                                                 
    # ?) X/ H1 N9 C, Q# h( v
  38.                                              属性位Lowbyte低四位为段类型,值=27 b" p- d: k2 H& f
  39.                                                  表示为可读/写段
    ) @3 z% P& J) F7 N$ X7 N
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    , m& d7 V; h* x, J/ Q
  41.                                                  描述符对地址转换是有效的。
    ; F/ [( e  ]2 @1 T+ A: ]
  42.                                                  bit0=1表示为:, W. n, [. \* ?
  43.                                                  系统段描述符。而不是门描述符。( x1 a. x! O, f- \; s$ O
  44.                                              
    * j/ y/ w+ p: L/ L2 P8 _: p8 S  K
  45.                                          */
    1 e3 W9 t) [; L9 [5 {; X( m
  46. ! j' I/ N- ]2 F- p+ u9 W5 B
  47. /****************************************8 q9 i$ f( N8 M2 N" X1 c
  48. *    GDTR寄存器, 48bit=6bytes            *
    1 t$ `1 Q: F$ y5 ]- f
  49. *    +-------------------------------+   *7 F; w( d' m9 W+ ]) l# }1 y3 Y, e
  50. *    |   32bit基地址       |16bit界限|   *" y2 J; A- Q3 G9 _' g( G2 _
  51. *    +-------------------------------+   *2 _7 q$ R% V% u6 J5 h/ }
  52. ****************************************/$ J) q! d* r/ e3 m* h) K
  53. unsigned char GDT_Addr[6]={0};
    ; B. ]) m  c, N$ D. m/ d9 Q* R

  54. # i+ B# B7 m2 J* g
  55. /****************: a9 D. }. i4 f: X+ Z, `
  56. *    打开A20门    *' T* Y8 J6 z0 ?5 n/ k0 Z
  57. ****************/
    + b: \; K8 ]6 a: Z4 a
  58. void openA20(void)
    - s, ?: v) j4 y3 o# j& w) r2 T/ e
  59. {& ]) @! B; }5 U# ^9 W. G
  60.     asm{6 x0 H6 s) C5 F6 s/ K' S
  61.         pusha5 e5 P7 |( q& Z& ^$ r
  62.         in         al, 92H7 V6 d- O5 x( E+ g( [1 }
  63.         or         al, 0x028 H2 k* I# Y+ t" H3 ~$ z
  64.         out        0x92, al. l7 s; b8 H5 |' b. o
  65.         out        0xed, al% d3 A; {2 T6 ?* }  s9 H- w
  66.         popa
    / R) m- e! y2 c- M% M. _4 R
  67.     }6 D; E. f6 `: W* r4 s" ?
  68. }9 n0 O( k2 a( f8 Q$ }8 F# w! ^

  69. 6 E% M% [' x. w. t
  70. /***********************************************
    6 H! }7 {  ]1 ]8 @1 v3 D7 q. B4 L
  71. *    函数功能:进入DOS4G                       *
    ! P1 c: n1 X' d/ x
  72. *    ====================                      *
    ( h8 s% G/ z, s) _% l7 |& _1 R
  73. *                                              *: H& h9 _* E2 G: G$ R
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    9 n& f; q& }( `0 z3 a
  75. *   如:                                       *; c$ }3 a4 N# y' W8 n  e4 n
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *5 e. \1 f" c5 u% y- r# o
  77. *       表示为 2个GTD                          *- I) {% x7 Y) K# D
  78. *                                              *8 p# ]- Y  ?$ u8 N$ \8 i1 `+ B
  79. *    选择子为所在描述符内的字节偏移。          *4 m5 t! K7 {3 R; L2 }
  80. *                                              *
      I9 I1 m( G( w: W) X
  81. ***********************************************/! j0 I6 x* n- X
  82. void set4gb(void)
    3 ?( e4 b- [# W+ G9 Q; @( z
  83. {- [2 H0 {3 r! v( m+ N- i( ?
  84.     asm{
    0 `- e: j/ V# B* u# l3 Q
  85.         cli
    ' e/ r: ^9 f/ N$ a3 [
  86.         /****************************************
    - T6 t0 _9 {8 A" }* {; D& a
  87.         *    GDTR寄存器                          *6 e# ~" u: T! L! s# B& z: e$ c
  88.         *    +-------------------------------+   *2 {. V( A2 d" Y* K1 @
  89.         *    |   32bit基地址       |16bit界限|   *. {) i0 i2 T7 |! y2 s
  90.         *    +-------------------------------+   *
    ) K! U3 |! E7 t  m$ ^( K) R' i
  91.         *****************************************/! o% t! D' C; c: A+ `
  92.         /*********************. {: e' J8 q, J( i+ C; }7 q% \
  93.         *        得出段界限       *
    5 F' _; N. C9 k
  94.         *********************/( S& v0 G1 s! I1 L) W! J+ \' T- b
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    ! |, Z- y" n6 _' p1 ?3 G# `: F
  96.         /********************************************- n2 Y% P: N" n+ l9 J7 U
  97.         *    计算GDT表的32位基地址,存入GDTR        *! Z) j+ \2 E  k( h" |
  98.         ********************************************/
    / x, A* F, p: L+ b& \8 M' y: J' V  M; u
  99.         mov        eax, ds% i% q3 v9 H3 Y9 b8 U
  100.         shl        eax, 4" I8 [  ]' x% s7 k. g
  101.         xor        ebx, ebx7 W- {6 ?* w1 B' q& M& D( Y8 S  z
  102.         mov        bx, offset GDT_def: n3 ?* i" O1 M$ A' y
  103.         add        eax, ebx
    # L5 ]7 T# L" I, [. V/ j) b
  104.         mov        dword ptr GDT_Addr[2], eax# M' H1 X, x% e( b
  105.         lgdt       fword ptr GDT_Addr7 @* h5 ]% ]( H. y  n
  106.         /********************2 a* c& O+ ^# L5 P$ i/ V! Y
  107.         *   选择子偏移      *- f- D2 l3 [# O4 z
  108.         ********************/$ A. i+ P6 M% C- i4 c% L$ \
  109.         mov        bx, 8
      `% A5 \. [; D& a4 R2 K- u9 G! E
  110.         mov        eax, cr0
    % m- W, Q/ |. j3 ^. Z- n+ t- F
  111.         or         al, 13 `% M2 x, G: W! `0 D1 _8 O
  112.         /**********************: x2 _1 G" l2 ?2 Z/ O
  113.         *     进入保护模式    *+ ]9 a; E/ Q" f, B% E5 w
  114.         **********************/
    3 \3 P8 {  i8 l2 H
  115.         mov        cr0, eax
    8 E$ l9 r' G9 ~$ X8 n/ `7 X
  116.         jmp        pMod
    & g' G% E' ^* m, i" ^
  117.     }
    5 Y6 r) y& u$ L1 D$ f9 q4 x6 e* ?. {

  118. : y, w' }8 k; F1 b  `' ^
  119.     pMod: asm{& q% ]8 \# a9 w3 [5 y4 S8 _
  120.            /************************************************************
    7 U3 D7 r3 U1 H9 @- ~
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *0 x$ l2 Z' u7 n
  122.            ************************************************************/
    $ j: m/ w$ s# Z: O, f2 b
  123.         mov        fs, bx2 A" n% @0 c  k0 {$ U$ O
  124.         mov        gs, bx
    * i/ j; D* O1 ~6 J: e' O
  125.         and        al, 0x0FE
    1 I, k- v: h8 `
  126.         /******************
      U" j& f) q3 K: A# G- r
  127.         * 进入实模式      *5 _. `3 Z% \2 Q9 O1 E
  128.         ******************/3 S# |$ R- D/ J  k1 _+ B
  129.         mov        cr0, eax
    + R' r6 O1 G+ ]7 w. M$ p
  130.         jmp        rMod1 i! K4 K- x) T5 S( _  u
  131.        }* j2 X# x- Z! C5 f5 {0 M

  132. 1 J- N' Z) W# K- z5 }3 R, \
  133.     rMod: asm{8 C- w) c! z) W4 `7 E) Z3 Q
  134.         /* ******************************************************************
    0 b8 c$ I3 T2 k4 B* k+ f
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *8 F. V1 R) s( K
  136.         ********************************************************************/
    7 c* |& M# J0 O6 f7 X6 I
  137.         mov        ax, 0
    ! ~6 a: b4 C5 P  ]# D
  138.         mov        fs, ax
    , L. X4 c7 U1 ~$ a/ E9 Z' i
  139.         mov        gs, ax
    0 o" c& i; d$ O
  140.         sti
    % T+ ?) t/ O8 ?) J# m4 W
  141.     }0 j+ x6 J4 [  Q6 M: W* C
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    " I0 t* ~1 m  l4 U6 V
  2. ;*    File: DOS4G.asm                                                *& p: k2 l* f$ ^5 r9 F9 @& r( U; l2 U* a
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    * |# J4 A; s8 W  b
  4. ;*                                                                   *0 y* V- S  h. D5 M8 s( i$ k8 l* f
  5. ;*    ========================Title===============================   *; y7 W" p# Y) f2 q9 a( t
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    ; U9 n+ v( F3 ^3 f' j
  7. ;*                                                                   *
    " O! t% J8 b+ Y/ D* w2 x. a+ f
  8. ;*   ===========================History==========================    *) Y* f: [( _8 o6 P: R# b1 H5 L0 {
  9. ;*    author: bini                                                   *6 @6 ~1 {  D* I# V
  10. ;*      date: 2008-10-08  Frist version.                             *
    * S0 `7 k+ o$ s9 B* U
  11. ;********************************************************************/ . ^5 N4 f: g: J
  12. .model small1 w- e1 h: v/ ^) y( \. \
  13. .586p4 H$ B9 G8 o( [! S/ P: U+ D* u

  14. " y+ Y5 Q: Z, {6 O/ y1 [
  15. DSEG  SEGMENT   USE16                 ;16位数据段$ p6 _1 C1 F# E1 [

  16. $ b  z9 {! h8 e+ x4 n# @, J8 M
  17. DESC            STRUC9 l9 t& Y7 J& E$ B8 Q7 j
  18.         LimitL          DW      0 ;段界限(BIT0-15)7 g5 Y/ N  K& K# J  j0 W& h
  19.         BaseL           DW      0 ;段基地址(BIT0-15)% Q  A% \, ^; b6 {& C( ^# o# C9 K
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    5 V6 k2 I3 \0 k% C0 _) f& R
  21.         Attributes      DB      0 ;段属性: H& W* i3 R4 I" |4 b7 n* l- W
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    ' c5 u# b1 U4 h) x( N
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    % \. d  G: F( T# D! \* [# X  L" v
  24. DESC            ENDS" C2 |4 Z9 a( \0 H' ]
  25. & u# r+ i9 G2 F3 z) P2 A; _7 M
  26. PDesc           STRUC
    ( M2 o$ n3 X6 Y" S8 A7 k
  27.         Limit           DW      0 ;16位界限
      x9 M9 [1 l( l5 |% Z5 E0 y
  28.         Base            DD      0 ;32位基地址
    # }0 i0 _- S6 k5 ^7 Y' K7 X- z
  29. PDesc           ENDS- c+ B+ C# L8 o' h: l

  30. 5 m2 Q# A' E3 c0 l
  31. GDT_def         Label   Fword# W3 @/ f! L/ k% I8 i3 ^6 }" \- F
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>8 ^$ [3 f5 o( N3 i
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>4 y' h+ D- h( G

  34. 3 \; c" b% V1 Z: l
  35. GDT_Addr        PDesc   <$-GDT_def-1, >1 e/ e( ]; f. |* V4 B. j% J( ^  q
  36. DSEG            ENDS                          ;数据段定义结束. X7 T+ T4 @6 m: J/ N1 y

  37. ( `/ {3 I3 ?7 F/ y
  38. CSEG            SEGMENT USE16                 ;16位代码段% x; Y9 u9 U* ^/ S; }' T
  39.                 ASSUME  CS:CSEG,DS:DSEG
    - s7 t: D: z% i! w
  40. .Startup5 G( c& b" J: j7 Y, M8 n- X6 B
  41.         call      Set4gb
    , ]4 b/ r! m9 r+ ?
  42. ;
    # ^3 A9 L- ^7 k2 }: V
  43. ;       fs, gs即能访问4GB空间, C& ]1 ~' f$ g9 E  B
  44. ;       write your code in here.5 x! |, u  I- l9 J0 s: U7 l9 m& ?
  45. ;
    , f( Z9 C0 v, E7 S4 O3 `5 h
  46.         .exit# q: J5 i" }3 ~* c
  47.         0 {3 g) y: K' d* x/ y/ R7 k+ B
  48. Set4gb          PROC      NEAR
    & O) g# s; w# }2 S
  49.         in        al, 92h
    2 ?) U3 Y4 I# O
  50.         or        al, 002
    4 O6 {) }3 {3 W1 m
  51.         out       092h, al7 [+ w$ @  {. M; S- i& f
  52.         out       0edh, al
      y  c& i/ j2 H) E0 R) w- A& u

  53. ( Q: l* T. q5 j) Z- G9 W2 v. L2 D
  54.         cli4 ~( t" l3 [: I& F& s

  55. + @# y/ |8 J: c; @9 Y
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    2 d, W4 v1 p& d' r0 n
  57. : J9 N! m0 ?: H# M& b& H
  58.         mov       eax, ds
    2 r) J3 D) j1 G: g
  59.         shl       eax, 4/ ?! k# F* Y) F- K
  60.         xor       ebx, ebx
    * L) L% g2 P( f$ F7 ~  e
  61.         mov       bx, offset GDT_def# D) J3 H: M2 y/ a
  62.         add       eax, ebx6 L9 x% ~4 G' i
  63.         mov       dword ptr GDT_Addr.Base, eax
    + U) P! c- S' q  C% V; c! p: k
  64.         lgdt      fword ptr GDT_Addr! P1 u9 n7 Z5 }2 v: o  f( f4 b

  65. - a" \$ I( p& l7 a( i; f
  66.         mov       bx, 8: U( A; d# z/ I5 A& e7 `6 b
  67.         mov       eax, cr0
    * R6 a( L7 w5 r( I! M
  68.         or        al, 1. @1 F; ~/ [, E7 I6 R  T" q
  69.         mov       cr0, eax
    " ?1 u/ R* `) K' ~- S' a

  70. $ x) K; Y0 h! p' I5 k
  71.         jmp       pMod
    % g' y% n  T8 J$ S& @' j
  72.     pMod:
    " l9 k6 l0 ^; Q3 m7 E
  73. ( X9 b3 J2 O) `: o1 G$ x
  74.         mov       fs, bx
    9 H1 I& A" T# b6 B$ i1 ?6 V
  75.         mov       gs, bx
    % W* t* Z4 g. p% B( R
  76.         and       al, 0FEh8 }. N% r( _" \# i( w2 S
  77.         mov       cr0, eax
    % U( f; h( f- M
  78.         
    ' V% E, m$ b" q$ J5 e  k
  79.         jmp       rMod$ Z* t9 j( w" @( S
  80.     rMod:
    - C$ v+ ?( p; l: I1 y
  81. 8 L1 F, A" y' F: ]7 X" c+ |
  82.         mov       ax, 0& H2 S5 u& P( T
  83.         mov       fs, ax
    ! T7 j' t) n+ o; D
  84.         mov       gs, ax
    ; {: W/ C' I+ c6 D3 n+ h8 v
  85.         
    1 N" T! ^, H/ @6 b( b4 ~; e
  86.         ; 在2M的位置测试写一下数据; C. H. U( y- ^- \7 B! U
  87.         mov       esi, 200000h: y4 M- G% J1 Q3 K
  88.         mov       dword ptr fs:[esi], 055aa55aah
    4 \. e; L+ x7 a5 \
  89.         ; 用RU去看看200000h的位置是否是此数据....' F+ U+ Y: V3 B
  90. $ H6 W) k) l8 Y" A+ g
  91.         sti
    # y/ Z0 m! y+ H3 d, F0 I) F4 i( u
  92.         ret8 v7 c: U& ^5 A+ @5 c
  93. Set4gb  ENDP
    , G+ c' w+ Z  U3 A
  94.       
    ; ]) i( |, p' L/ u* U
  95. CSEG           ENDS                              ;代码段定义结束$ Q& k/ K- Y+ n% 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/ P# v* s; b$ ?% _$ S7 F
; B' b/ H3 ^" P: u3 A8 X# a
option->compiler->code generation中的option选中, [X] compile via assembler0 ~2 c) ^  W* ~: y

- h# g: ~; H( h; i9 ~0 Y- M[ 本帖最后由 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;
& O% Z4 j) |. _0 v7 u! {" @Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;& N! c5 A4 j) ~$ V: W
: w3 a* v# t: |0 T
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;" z) l, }& `9 c% }% q
替换如下,
) [, }  j. O+ Z: r7 M+ R5 l4 YNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
5 G9 ^& f# c/ ?1 C- SData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
6 F1 g+ c" c$ Z" _. t' u3 i- G1 g8 f) s+ W) q+ ^+ P/ q$ I9 z( N
GDT_Addr        PDesc   <$-GDT_def-1, >4 ]/ `$ T) h+ a
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
, y" o1 W3 T& U# w4 O* E$ Voption->compiler->advanced code generation中的instruction set选 80386
- S. C/ Z$ U  {0 q  U
3 h4 W# j2 Z1 ]1 _option->compiler->code generation中的option选中, [X] compile via assembler
! `" A% q) n8 g$ M$ W
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 0 y/ L3 M2 d. [7 J

$ i& ?2 P4 Y2 ]/ O8 u4 E0 h   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

6 [2 ~8 S# h& E2 X, o% C! G& h: q& R: Q
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;$ R# b: T" K# f. l7 m2 C) S* Y5 t- M* J
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 06:43 , Processed in 0.076380 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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