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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
/ `4 }! w/ F9 ]" a) z0 r  j2 a0 I/ B, L  o) Z! w) j
这是C的
  1. /********************************************************************5 c" t, r" F8 w, Z" v
  2. *    File: DOS4G.H                                                  *) x, M- s9 h8 \8 V3 ^
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    / R$ {% X, j* Z# e  Q5 Y* D: [
  4. *                                                                   *
    , O9 B. n  N) a0 y1 r
  5. *    ========================Title===============================   *
    & R5 y4 m: \- W
  6. *        这个函数是让系统进入DOS 4G模式                             *$ a# A8 n& |8 z( M- u4 g5 ^: ^! d
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    5 F! s2 [3 S, _& I1 s) F
  8. *                                                                   *7 I% p1 x8 m8 a( b# t- n  e6 n
  9. *       使用: openA20(); set4gb();                                  *- ^$ e: ^& s' ]0 o+ S
  10. *                                                                   *
    2 j2 @& l7 m) M$ i. Z8 t; Q9 s8 O0 u
  11. *   ===========================History==========================    *; G( `; R$ y2 _
  12. *    author: bini                                                   *
    8 y" N5 Y/ i5 Y+ b) Z% d, O
  13. *      date: 2004-11-30  Frist version.                             *1 l1 O; G. T# {: ]1 d% G: H
  14. ********************************************************************/. D* S! N# U! S8 k$ @4 e

  15. 8 k* A( t0 {" E# a5 p
  16. #include <conio.h>" O, W  V; y6 e0 P. g; {1 l
  17. #pragma inline
    + ?% z, S- R! p

  18. # _6 m4 |9 Q$ {( Q% h4 n% E
  19. /***********************************************8 r: X, P& i  ]/ Q* }& v/ L
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *; x# @/ b! U  J6 L$ f
  21. *    第二个为一个数据段,没有代码段。           *
    , H* I2 G/ c& `% L4 ?  ?) q
  22. ***********************************************/
    1 p  l8 L6 k5 D7 k  k$ ]
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    4 E7 k; @' g6 p6 p! O& r; p; M
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    ' F9 W% W8 b$ R3 E5 L$ P' y
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    # Z8 x: w5 L! F9 t
  26.                                       */5 |. ?; D, |( _0 y
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    , [8 ^7 S9 O  Y: x* P6 Z
  28.                                          最高字节为 base( bit 24~31 )
    - K. w) m' R, x- M4 y$ K$ G$ }7 }
  29.                                          
    7 Q3 l4 D4 ^7 k1 o3 Q
  30.                                          属性Attrib = 0x8F92
    ( a. c6 e' D) v# e! b. Q
  31.                                          / d3 ]3 i+ ]5 g2 m! h
  32.                                              属性位Hibyte低四位为 3 g2 p& F; T2 T' O2 o1 {
  33.                                                  Limit( 16~19 )=F
    ! D  W% N) }- N/ ~  H( Z9 I0 v6 b
  34.                                              属性位Hibyte bit7 为粒度* K% P  C; P; D$ K
  35.                                                  (值1=4KB粒度)
    # m# |% y; I6 T1 `9 ]  w2 Q/ G) N
  36.                                                  8F & 0x80 = 1
    & W: ~( Z. r1 T( s" u$ v
  37.                                                 
    " u. b$ k( D3 m, a' y. N2 u+ W
  38.                                              属性位Lowbyte低四位为段类型,值=2
    # E0 N0 A% f  |. Y0 u
  39.                                                  表示为可读/写段
    + M8 Q% Z3 x& p  e
  40.                                              属性位Hibyte高四位=9,bit3=1表示:) d2 p9 {: f% W: K: F
  41.                                                  描述符对地址转换是有效的。
    ( b5 }$ I. G6 Z2 ~
  42.                                                  bit0=1表示为:
    - \$ \0 i( Q; s2 S5 x/ N3 i  e
  43.                                                  系统段描述符。而不是门描述符。
    ! v1 c: k3 `8 R" [+ K7 |
  44.                                              
    + J3 E3 D) [: ^  j
  45.                                          */+ X" d2 p  m8 ^8 h
  46. 2 {9 a' O* B7 O* \
  47. /****************************************
      _1 K2 R# c- H% }+ U% f4 U( v
  48. *    GDTR寄存器, 48bit=6bytes            *- _2 b$ i3 f4 E" K
  49. *    +-------------------------------+   *
    + [3 A/ }, J9 o
  50. *    |   32bit基地址       |16bit界限|   *
    8 s8 K9 P+ G% ]4 c" s
  51. *    +-------------------------------+   *
    4 @* d% D  E& R9 p4 U, ^8 d6 h" {
  52. ****************************************/' Z% R5 l) i3 u8 l$ K
  53. unsigned char GDT_Addr[6]={0};
    , t6 Q. ~( U! Y5 L. d
  54. & ]- f, O: h# q4 d
  55. /****************
      y9 o' ~) @, f* }+ v7 n/ B, c% R2 O
  56. *    打开A20门    *& j& a1 Z9 l% \
  57. ****************/
    3 i- R$ {" j9 I$ U: B) b
  58. void openA20(void)4 x, d6 E, `" A6 c/ ~0 A* T+ X$ m" |$ m* f5 Z
  59. {
    3 D- ^& m: W! R$ L) B/ R6 u* ?
  60.     asm{
    * L0 E4 ?9 b6 s0 v
  61.         pusha  \4 W+ e  q! a, b/ G
  62.         in         al, 92H
    9 e4 k: t) f$ o2 _: s3 O
  63.         or         al, 0x02
    5 H( i7 r; D6 ]' f* L
  64.         out        0x92, al
    ) U, Z) a2 s1 y# D6 }
  65.         out        0xed, al1 O: X5 s4 Y) j4 B* O1 y
  66.         popa
    5 O* o  \& i) }, r
  67.     }
    - k' t- m; ]$ q9 Q/ g
  68. }3 J: L$ l- c0 Q- q1 M* e* C- x* H
  69. - |2 M2 T0 T5 _9 U  y8 A
  70. /***********************************************
    * A$ b+ `* W- ^* e/ D# T% W
  71. *    函数功能:进入DOS4G                       *% S- p/ l/ Y; x+ {/ f+ G
  72. *    ====================                      *- q& ^3 q3 ]7 X% `- t0 ]
  73. *                                              */ m: X  v) \. h! [, k
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    $ h" ^6 m2 R: Z5 D0 X. ?# M1 w  {
  75. *   如:                                       *
    9 Q% p& x: L8 b) M: E
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *2 f6 I1 t  t- G
  77. *       表示为 2个GTD                          *2 i  F+ e" y3 n, S
  78. *                                              *
    4 D$ ]: E+ A5 y
  79. *    选择子为所在描述符内的字节偏移。          *1 ^1 y$ o/ r" i; Y8 R
  80. *                                              *. T' T2 m. H* y" M( u9 L
  81. ***********************************************/
    4 \: B/ S* |; |% ^6 M. M
  82. void set4gb(void)
    - x! ?" Q9 n$ _; m$ Z
  83. {
    ! @4 y+ }& i/ a2 o5 h: V
  84.     asm{, {, ^3 B" s0 P/ I, J% E" b2 ]
  85.         cli
    # J* F7 m6 C" j' c9 f& ?6 P
  86.         /****************************************
    3 F: s. B5 O) n4 c% s: E" ]2 Q2 u8 q
  87.         *    GDTR寄存器                          *8 D% R; l1 B" ~1 t0 u1 j
  88.         *    +-------------------------------+   *2 Z. n/ W% z- B( S
  89.         *    |   32bit基地址       |16bit界限|   *. l0 \- ?3 J$ R6 b
  90.         *    +-------------------------------+   *$ }* Q0 {; p- a# b4 W, V, t
  91.         *****************************************/. {+ {  R, E. [' Q' n5 j' S% y1 y
  92.         /*********************; k7 r: z8 b. U
  93.         *        得出段界限       *
    * W2 T8 j" k% H  B, {: L
  94.         *********************/- T4 }7 b+ Q4 l' J. S6 ?
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    4 r% N, A6 H! G. K+ y5 x- B( ?
  96.         /********************************************/ W3 s% y3 `" g
  97.         *    计算GDT表的32位基地址,存入GDTR        *2 s+ X! d) p3 J$ |9 q
  98.         ********************************************/, c. g5 j6 L' a
  99.         mov        eax, ds
    3 ~" r- @% m/ d1 M
  100.         shl        eax, 40 w* p8 x* k% |5 g
  101.         xor        ebx, ebx
    4 H5 D- a) T5 x3 {; D/ f3 a. s
  102.         mov        bx, offset GDT_def7 r& c7 ]" s& \. L- p; z
  103.         add        eax, ebx
    5 ]% _0 X! A6 |6 O; h0 B
  104.         mov        dword ptr GDT_Addr[2], eax
    - j2 X, s7 c! |6 G: D% R6 u
  105.         lgdt       fword ptr GDT_Addr. K8 K6 r# }3 z' \2 [( c$ s* y% ^3 D
  106.         /********************  O( R% R) v/ N0 u" D: t% w
  107.         *   选择子偏移      *" o6 R  M& Z" F. \7 ~# E
  108.         ********************/* ^2 {; }  J, ?1 q
  109.         mov        bx, 8+ G' Z6 d/ r9 Z$ \: q
  110.         mov        eax, cr0
    / a+ V- B2 G( e* {9 S
  111.         or         al, 17 i- G7 z7 S- P$ u$ L2 |* _* a
  112.         /**********************# E  y2 b7 D; s, H  w8 o
  113.         *     进入保护模式    *8 V% f, r+ u/ D3 ^
  114.         **********************/
    0 n" h8 U! t+ X6 O
  115.         mov        cr0, eax* ~0 H' Z" H$ H8 ?
  116.         jmp        pMod4 a- h$ _% o! U& K. s$ L
  117.     }
    . d, Z8 u# L' H: i" D- C
  118. 3 W7 e  u9 q/ B9 _9 \9 V
  119.     pMod: asm{( u! V3 D% h3 V! j7 n( b. d
  120.            /************************************************************; z0 J/ b2 U% G2 Y* ^( u
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    * V4 u6 X" `% d7 m: Z
  122.            ************************************************************/! T. Y- {$ o; [! N* ^2 e
  123.         mov        fs, bx
    ( t) \9 x" y7 i8 ~$ o: `# k9 s  O
  124.         mov        gs, bx
    7 ]  }) Z4 @8 f
  125.         and        al, 0x0FE
    ) m( V2 b& ~9 g7 @8 [9 v) Z
  126.         /******************
    / K( u6 ?) M1 `0 O, ?( l
  127.         * 进入实模式      *  N( W8 q0 g. x" h7 H( q1 i
  128.         ******************/  w/ G' ^  h7 z% T$ c0 Q% F+ O
  129.         mov        cr0, eax
    2 U3 X7 v9 {2 h3 ]0 W4 i
  130.         jmp        rMod
    9 k! l- u$ u1 f
  131.        }
    ( c. h/ ~! Z: _4 Y6 u; E
  132. , G0 i4 {$ d5 E) @) T# U; @
  133.     rMod: asm{
    - I3 _; v& x' Y5 M# @3 B7 \
  134.         /* ******************************************************************) [( N# ^9 y1 W2 ?# N5 g
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *$ l* I/ I8 ^% ~3 Y( P
  136.         ********************************************************************/
    4 O0 `5 V6 m3 t* M8 ^/ C
  137.         mov        ax, 0' p' B% {  k; Y
  138.         mov        fs, ax5 r+ j5 b- c/ l4 s
  139.         mov        gs, ax
    7 I- {( X5 y+ A% Z" f
  140.         sti# ]7 l3 x& }, w# M$ X& N: K
  141.     }
    . a2 |: E1 Z/ J
  142. }
复制代码
这是asm的
  1. ;/********************************************************************5 A: n0 P( X, i, y
  2. ;*    File: DOS4G.asm                                                *5 s0 Q" O+ P% K
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    / F# `7 p+ D0 t  T, ?* W
  4. ;*                                                                   *
    6 G5 i- E+ V8 c: M
  5. ;*    ========================Title===============================   *
    * {, ~' U0 X8 c! h3 }
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *+ \8 m9 J/ v0 w& i
  7. ;*                                                                   *
    ; j- `: X1 _5 n9 O0 J: F, T
  8. ;*   ===========================History==========================    *9 R0 {& G: p) \% A+ {/ w1 L
  9. ;*    author: bini                                                   *0 m7 f3 {! I# X9 F
  10. ;*      date: 2008-10-08  Frist version.                             *4 B8 h/ r0 e. V. {; L5 b* i
  11. ;********************************************************************/
    8 n3 l9 ^. }: E, v, V: `
  12. .model small
    & q; j1 u" l" u) i% ~- V5 u) K
  13. .586p
    9 {; C4 M* h' s2 i# `
  14. * W, k; a% @4 H# h. L5 q
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    % E' ?- u7 G+ \* e; M: L3 [0 X0 M$ T, I/ y

  16. , P: F9 J$ R6 c% O, Q8 D3 r/ c
  17. DESC            STRUC5 }3 ]" E* N! O$ N* o( e
  18.         LimitL          DW      0 ;段界限(BIT0-15)6 n. b2 \: k1 m& T, o6 _; v0 }
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    9 W; Q/ K- {9 y4 i' A& D$ [
  20.         BaseM           DB      0 ;段基地址(BIT16-23)+ g2 E* Y2 W3 G- R0 o0 {& c
  21.         Attributes      DB      0 ;段属性
    / c( O- x  W4 [7 c1 t" y% ?: b
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)6 ~4 ^0 V' {2 |& m( z
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    5 ?2 s- Z, u  f( K4 A. E' O% w# a
  24. DESC            ENDS
    8 {( e. V7 M. l* Y! _9 G
  25. * z4 q, O( M$ ]
  26. PDesc           STRUC
    7 U" I) @. u" c& J
  27.         Limit           DW      0 ;16位界限! R* K# [; `* Z: R& F6 t! H: r& `
  28.         Base            DD      0 ;32位基地址
    5 X& U8 F; v' i5 k# X' Q, m- u) r
  29. PDesc           ENDS
    ; V0 v$ ~; p) ^
  30. - x. [/ I$ j, @/ f; @
  31. GDT_def         Label   Fword! E7 h5 x  A) u" g9 j
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    ( s7 v$ g: m' d/ O' D  r
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    6 n7 z" a" r  V4 @) m
  34. * Z$ ]4 U* p6 \! T6 ]" G3 t7 Z
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    0 W: W2 ?7 ?5 X3 V& w
  36. DSEG            ENDS                          ;数据段定义结束
    9 w9 {9 u* f8 u2 F; o: H2 T4 C
  37. 1 U  o# |$ v$ p* T3 z
  38. CSEG            SEGMENT USE16                 ;16位代码段
    5 K4 S! u1 i& M" B0 G
  39.                 ASSUME  CS:CSEG,DS:DSEG
    8 T- [8 u3 G5 P2 {! K5 W5 |+ ^
  40. .Startup
    4 o: b8 P7 E, a
  41.         call      Set4gb
    ' E6 O2 H: B4 @# j" @" E
  42. ;: M( Q. B; }; s0 l- l+ ?/ v
  43. ;       fs, gs即能访问4GB空间
    6 a1 V4 w* t& [4 y( F
  44. ;       write your code in here.
    2 U( K  ]& j! ~+ r2 m, X8 N
  45. ;
    ' x! j7 g" `9 @" c! G! L
  46.         .exit, F8 n; Y: a! q( k8 }4 n% }
  47.         
    9 @7 Z$ K- I! x7 e  s+ {# f; `
  48. Set4gb          PROC      NEAR) T5 s  `- `& E- O$ h
  49.         in        al, 92h
    " J4 z  \( {/ v9 w' @. t
  50.         or        al, 002
    7 o5 r- a8 e+ \/ j
  51.         out       092h, al
    : q/ K0 a* t% g6 d. \
  52.         out       0edh, al
    / E0 X! Q' r! r) L; ]4 X) `

  53. " y* H/ v" a3 ]
  54.         cli
    2 L/ J: E0 F+ ~* m. `% L; G
  55. 8 M1 M# \5 o- K! X3 N2 Y3 q
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    6 e2 G( C; L, h. a1 E

  57. - p; s( f9 v, |) ^3 N& B
  58.         mov       eax, ds
      p* T# g, W: s5 N
  59.         shl       eax, 4
    . E6 U/ Y! W9 X- @
  60.         xor       ebx, ebx4 ~1 C8 @- k, h+ c8 O! w% z
  61.         mov       bx, offset GDT_def
    3 p7 b! ?3 o$ U9 K
  62.         add       eax, ebx
    + v; |4 K9 t1 L% N, P1 \
  63.         mov       dword ptr GDT_Addr.Base, eax7 F. S4 V$ H0 Q9 O/ \
  64.         lgdt      fword ptr GDT_Addr$ C6 y* k" o- f% U0 R

  65. - ~5 p( t+ \! e! D( S2 j. P3 q
  66.         mov       bx, 8
    , X( M- o/ ]4 Y: Y$ a$ Z; c
  67.         mov       eax, cr0
    $ M% H0 r! r4 b) A" I$ W
  68.         or        al, 15 d( K' ~) g# p8 s" Q' j7 z
  69.         mov       cr0, eax8 o. |* p7 d2 d3 x
  70. - w. U- o6 \: y0 j4 \5 q
  71.         jmp       pMod' k5 o/ c; \/ \/ C
  72.     pMod:
    3 p3 ^' h* h3 ?% _" O
  73.   w: K3 A. Y' t) R  ^5 e
  74.         mov       fs, bx
    9 l2 k: K' J6 M5 }; G) E
  75.         mov       gs, bx
    . a9 ~. X3 g; C8 ]% G
  76.         and       al, 0FEh
    % V4 N" S+ g+ y$ F
  77.         mov       cr0, eax9 s, u7 k9 w, N: D: m
  78.         
    & `& Q# @* t9 U( C/ f7 Y" \0 T
  79.         jmp       rMod
    1 K( @& Z: G' G4 }9 y
  80.     rMod:2 }% v, q8 B& @3 t
  81. - {: R) j3 z% f
  82.         mov       ax, 0
    5 m" ^# M8 f! h% x4 R, g3 w( J
  83.         mov       fs, ax
    5 D7 U0 U2 Q: w5 W
  84.         mov       gs, ax5 j% J$ X: D3 b+ y6 d1 N/ C$ ?
  85.         ; F8 r# X; L& u# N) @' Q. J
  86.         ; 在2M的位置测试写一下数据) O7 E9 {6 g6 E6 I* V" R
  87.         mov       esi, 200000h
    8 w4 G( v$ f& t+ l
  88.         mov       dword ptr fs:[esi], 055aa55aah7 L& C; O- L% W4 }- n1 j7 f9 s
  89.         ; 用RU去看看200000h的位置是否是此数据....
    3 w1 e& v- P" @* _+ V+ e

  90. . l3 E  Z% ?7 D- t% a9 w. S
  91.         sti# A. \% |" }# p+ k( s0 Z& \
  92.         ret
    , u+ ?8 |- _+ J3 B* t: [
  93. Set4gb  ENDP
    ; s5 r% a, n7 E8 ?0 i
  94.       
    % U( V/ T7 ^$ C: S% ]- P- J% n
  95. CSEG           ENDS                              ;代码段定义结束7 G7 [- G5 V/ B; G% g% |2 R
  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% Z# u( r1 }% S5 q# \
4 a8 u! ]6 L1 X% |3 B
option->compiler->code generation中的option选中, [X] compile via assembler! V' y; ^! `+ _$ c4 l
6 e5 R5 ]* R5 F0 s6 R8 L
[ 本帖最后由 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;
* [) f- E4 w6 ZData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;3 h9 U" u2 r' f9 ?5 l

/ z# ?( M4 O9 p) GGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;8 ~) H2 g: V- h; R6 n& \
替换如下,8 o0 G( Y( i9 Z. m# e
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
1 V. U0 U( D% ?$ iData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>0 X2 y1 P$ W% w( e' c

: x) h& c/ |9 h# _$ P6 _GDT_Addr        PDesc   <$-GDT_def-1, >
% F3 K, }, o# x1 n; b, }8 h8 w这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
0 N# k+ P/ T) j: A/ S# t9 joption->compiler->advanced code generation中的instruction set选 80386& I8 E  _  a7 z- k! c; J5 M  m

' d6 A+ M+ @& M* [, x$ coption->compiler->code generation中的option选中, [X] compile via assembler

0 S  b. R' |6 c* Z! D   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 ) j1 P' R- a# Q6 Z/ x6 Y5 {
8 q- {0 v  y9 D  j6 F8 R+ L
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

2 A* O" V1 }' l
! Z2 @3 O; x/ S+ r我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 22:39 , Processed in 0.027130 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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