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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
% f1 W5 ~2 p3 i6 A( G& {
- ~% U) G* S. T这是C的
  1. /********************************************************************
    ! D; X/ f9 K8 Y& Y1 u% E% O
  2. *    File: DOS4G.H                                                  */ M- V) t6 C: u  {! c
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    9 `6 ~8 |; p- u/ H' K# S
  4. *                                                                   *7 H6 i! `& Q5 _5 a' Q
  5. *    ========================Title===============================   *
    1 ?) Z5 a7 j# R+ |. ?7 l4 Y& Y
  6. *        这个函数是让系统进入DOS 4G模式                             *) E/ t5 N2 R) x$ J5 M
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *5 c3 j+ x$ l7 }' h; w2 a7 U7 v
  8. *                                                                   *+ ]; z# G. |, e: o1 }
  9. *       使用: openA20(); set4gb();                                  *
    . a: R* p1 Z2 k  m+ _
  10. *                                                                   *
    $ ~. g! I% M+ C( e) [
  11. *   ===========================History==========================    *) i* [2 P' d: M
  12. *    author: bini                                                   *
    ( \1 r0 N' v6 Z+ j" O
  13. *      date: 2004-11-30  Frist version.                             *4 r5 ~8 \8 b* u# a) _& n- K
  14. ********************************************************************/, H  x# e# n- A
  15. # z3 B- b$ ^, D6 |1 N$ {. c
  16. #include <conio.h>
    6 I6 V3 ?! Y3 r  Z- i* i" e
  17. #pragma inline
    4 v. a4 }2 d. C6 m0 S( S, M
  18. % P$ E0 p) B6 s- B
  19. /***********************************************
    , Y+ u3 g+ l1 W/ W6 j- \
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    + a6 L  v5 t2 C) [; E% Z8 p
  21. *    第二个为一个数据段,没有代码段。           *
    ; V5 E) c' d) Q; S8 }0 q/ {+ ?
  22. ***********************************************/
    / P0 u5 r( n- L
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    9 n) M) v1 G) `7 B( H7 m
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, ; @) g/ H. w# E) j: g# i
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF   F7 Y" g( q7 p8 @" ]
  26.                                       */
    ) Q1 p8 f! v: w7 u( x
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    - H# w) D" V# {7 Y8 q
  28.                                          最高字节为 base( bit 24~31 )
    , p9 j( _; \& \5 X/ j. |
  29.                                          ( c/ n9 @* W/ ]9 r3 T% d
  30.                                          属性Attrib = 0x8F92' \! m, R" u0 N5 l
  31.                                          7 |0 t9 f+ a1 @+ r1 i0 n1 K/ \
  32.                                              属性位Hibyte低四位为 * Y# c/ i, g$ ?# O( O
  33.                                                  Limit( 16~19 )=F
    % U8 e0 z! k* L, h+ z) j( Q7 z
  34.                                              属性位Hibyte bit7 为粒度! A- |* ^7 `) r( c# x* ^- {3 ~
  35.                                                  (值1=4KB粒度)
    8 Y3 n) z% E, n% t
  36.                                                  8F & 0x80 = 1& z, O/ q6 f, T0 ~' {( z7 p
  37.                                                    z+ o: S3 I# n) d) r
  38.                                              属性位Lowbyte低四位为段类型,值=21 O( U+ W# i  E. x; @
  39.                                                  表示为可读/写段
    7 Y2 n; H/ {: ~; n8 d  ]# i4 |! p
  40.                                              属性位Hibyte高四位=9,bit3=1表示:! S8 g4 g4 T( c! g, q% h4 S
  41.                                                  描述符对地址转换是有效的。. N( ^. o' \! ~
  42.                                                  bit0=1表示为:! N* J0 j. J% i7 A' d; b4 o; Q+ r0 J! H! s
  43.                                                  系统段描述符。而不是门描述符。& m9 T  l# Z/ S& [  U9 ~3 y1 l
  44.                                              
    , U+ I: d* B- |! \5 X3 x
  45.                                          */
    9 P: s+ e, a4 r7 \

  46. ; f" i; [+ b1 U
  47. /****************************************4 E! R7 ?% \) ~
  48. *    GDTR寄存器, 48bit=6bytes            */ |* ], F, l& p3 m1 q
  49. *    +-------------------------------+   */ d. F# V7 l0 \$ Y
  50. *    |   32bit基地址       |16bit界限|   *( u: M; K2 i! o! p
  51. *    +-------------------------------+   *
    + n0 w8 p: }* o
  52. ****************************************/2 b$ @& ~5 q: Q; R. B2 Z2 a1 H* T
  53. unsigned char GDT_Addr[6]={0};
    ' Y9 U- q: p1 E1 n
  54. 4 x( \9 k9 k1 o  m* R) E2 x
  55. /****************
    + ?' {/ L* `! n0 x7 ?- N! r1 E
  56. *    打开A20门    *% V$ w$ k1 {5 T9 ~. Z1 r  d4 ?1 g
  57. ****************/
    ) f. w  X6 H* V  M) B2 w: `
  58. void openA20(void)
    $ Y  ?# p! M. Y1 A2 h, B
  59. {
    $ |2 V, i" F# R  h! `3 G
  60.     asm{: m+ q) |# H" v0 ^- z; f' w
  61.         pusha) D. c* x$ y7 C" E/ j5 S- o
  62.         in         al, 92H1 T) x5 D$ J& A  i! x
  63.         or         al, 0x02) d2 L+ @, _* u- L
  64.         out        0x92, al* y9 V5 Q: U( J
  65.         out        0xed, al/ H( o" t- Y+ n$ ?) Y( {
  66.         popa% h% B1 i; D# @9 M
  67.     }0 w' c8 T2 B' t- @8 E
  68. }
    : W- Z! ~, E( O/ v& y5 A& [1 T
  69. ! M% d6 }, p; q% ^
  70. /***********************************************. A- V8 y  ^& @* r
  71. *    函数功能:进入DOS4G                       *, h3 j8 l7 {5 n6 A; C
  72. *    ====================                      *
    : D, Q" a9 a' N4 D. k
  73. *                                              *
    ' M# D( O8 |% ^. w. }4 c+ q
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    ; j$ \" d: H) S9 T7 \* k) q
  75. *   如:                                       *. F0 N6 F# X7 C, F3 z" [
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *4 {; q% a* O) Y( V0 ~. |0 A' M' x# @
  77. *       表示为 2个GTD                          *
    8 d$ v8 A, g* Q: ~; n
  78. *                                              *
    . u  B( R  s( G* ^: _
  79. *    选择子为所在描述符内的字节偏移。          *
    5 u2 D5 \$ {6 O0 J
  80. *                                              *& S9 P: [* V! R( ^  z3 X3 F
  81. ***********************************************/+ T* O* \2 ]3 p+ F
  82. void set4gb(void), D: y" q+ P: b, B
  83. {
    : v0 W3 [% n5 f1 J3 D/ d
  84.     asm{
    ' K8 _9 B3 j" g6 j4 q
  85.         cli
      S3 e' V/ ~7 L  `" G. i) Y& ]
  86.         /****************************************
    , p9 ?- N5 f8 }! K7 `( l" r
  87.         *    GDTR寄存器                          *2 ?1 @& P7 S1 o" e: D+ Q0 v" O
  88.         *    +-------------------------------+   *5 I' N! N/ M1 S% b* S1 F. u
  89.         *    |   32bit基地址       |16bit界限|   *1 _/ x+ i" ?) M) e/ l
  90.         *    +-------------------------------+   *  x& P' ^3 e1 L3 Q; Z5 M6 c
  91.         *****************************************/
    $ H& t. w. T- R% T5 S/ Q4 D
  92.         /*********************; K. i" Y& G4 ^/ U7 q3 q
  93.         *        得出段界限       *% f, ~1 R% ^& F
  94.         *********************/
    * i2 D8 H( V/ e! m" k% j: z* y
  95.         mov        word ptr GDT_Addr[0], (2*8-1);+ j5 H, t/ Q9 H7 q
  96.         /********************************************# _) z6 \- d; b/ V$ r9 Y' ?/ [
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    0 t: q8 Z, P, H, u0 o
  98.         ********************************************/$ V& @3 Y" J0 ^: [
  99.         mov        eax, ds9 i, I5 ^+ O' Q) {' d' M% h# N; V! g
  100.         shl        eax, 4$ z" G% K' \. G1 x+ B6 Y' z
  101.         xor        ebx, ebx
    2 |- @& r! e1 i- [# S, h$ c+ L
  102.         mov        bx, offset GDT_def1 J5 r+ H1 c$ R7 N/ m5 v, G3 p! d
  103.         add        eax, ebx+ f) }2 S" s$ P2 Z. h1 l$ W' E
  104.         mov        dword ptr GDT_Addr[2], eax
    + J; W- Q1 l0 c/ x5 l0 |
  105.         lgdt       fword ptr GDT_Addr
    6 T2 p+ G5 r; e# t8 H" m, X3 C
  106.         /********************
    3 Q0 i& v2 m. [  V' Z
  107.         *   选择子偏移      *
    4 w. o" M  i. l( ^: q* B. r
  108.         ********************/$ B. C4 w9 ?5 c( {- `0 f: s8 l
  109.         mov        bx, 8
    3 ^5 H# f" O0 T/ c" H# W* i( K3 q
  110.         mov        eax, cr0
    3 Z" e- w' J" u7 h$ U5 I" {) b
  111.         or         al, 1
    $ j% W7 b% p; e1 G- H
  112.         /**********************
    - F& K1 X) X- s+ q
  113.         *     进入保护模式    *
    : ~5 \( r0 e' m. {! ]# T
  114.         **********************/
    " n" B+ A  N2 X8 L% q
  115.         mov        cr0, eax
    4 F' T8 f! Z9 O: n; K9 z. _" K" _2 X
  116.         jmp        pMod
    1 x4 y' A! U0 R# |3 H
  117.     }% u/ V* N1 a' E5 |

  118. 8 e/ e$ U2 S4 g" p, V# T; f
  119.     pMod: asm{
    , h& H! g: U) `/ P
  120.            /************************************************************0 e! Q7 k- c" b# Y
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *' ^5 Y1 Z: J. c1 l, R" |2 A
  122.            ************************************************************/) S) s1 Y: O. w: W- x% }% K. K
  123.         mov        fs, bx
    " L  ?! |% i# a% M
  124.         mov        gs, bx  q- M. p# x8 M2 }  j2 p
  125.         and        al, 0x0FE
    ' S( f1 Y! e# u4 g, Q
  126.         /******************
    3 n; N9 H' Z3 m5 o
  127.         * 进入实模式      *
    , l, d$ O( z  c# i8 U  x
  128.         ******************/
    " w3 Q, ]! y3 P& c$ M2 B- c
  129.         mov        cr0, eax
    # y+ C: Q8 q* U6 w- o9 l
  130.         jmp        rMod
    : P1 s9 F8 S7 K' U4 Z+ u
  131.        }
    1 S* [$ v( p/ M2 b3 s2 U2 g0 A
  132. * ]1 [! B9 ~3 x7 ~
  133.     rMod: asm{
    : l' q$ {( X% D9 h3 P+ w
  134.         /* ******************************************************************. a9 Y+ {( D1 J' @. q) e
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *7 y1 D% i+ R9 a5 q, r3 @
  136.         ********************************************************************/$ U' U! ?2 j% |) O* u6 `. W
  137.         mov        ax, 0
    ; N+ Y, E; ^) M/ i" u$ m
  138.         mov        fs, ax
    . }+ I( d. C2 _& Y8 c4 W9 y- n' d
  139.         mov        gs, ax, Y5 n5 [& z) F4 |+ _, B! G9 A
  140.         sti. o+ e* t9 g: s& r
  141.     }0 q& B- i0 F& }
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    9 t" `7 ]! Z7 J: G) @' S7 |
  2. ;*    File: DOS4G.asm                                                *7 v4 |9 }# }7 d7 e
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
      H* F1 H' }' D" x
  4. ;*                                                                   *) a3 O* v0 N) _
  5. ;*    ========================Title===============================   *0 ^1 x4 H% j, ~+ |& t2 O; V
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *: r9 t" R$ w7 T' _3 m
  7. ;*                                                                   *
    6 S6 t3 c4 J, Y! x0 L! Q
  8. ;*   ===========================History==========================    *
    " J0 h( }- [4 f
  9. ;*    author: bini                                                   *
    ; ^# e; K. L& e& ?# P/ C
  10. ;*      date: 2008-10-08  Frist version.                             *
    7 G/ l. C, o1 J( V0 k8 G! {
  11. ;********************************************************************/
    " T4 e* b+ L1 Z2 x& {& X
  12. .model small5 T2 \  q" B, J9 s) u
  13. .586p
    0 r1 t( w. D9 V9 i+ p& N- z2 h2 q, f

  14. 0 [. r2 m. I6 E: ?9 [
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    1 ^6 i* H7 {1 ~& h  U( N

  16. ; u6 Y: K" R6 G# \2 I. Z
  17. DESC            STRUC7 i8 Q* Q; b* |! J  a2 V( n$ v
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    4 u! B# n* z9 c7 ?) j5 S
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    " T5 I" H: D. K/ F
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    2 \& U( n+ ~% c, [; I$ o; d
  21.         Attributes      DB      0 ;段属性5 Z7 i" m; b- j  D' b
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    9 }& s( `7 L) h$ L& @1 W! _
  23.         BaseH           DB      0 ;段基地址(BIT24-31); c1 Q2 A& L. I. _2 v) h
  24. DESC            ENDS
    ( T( V7 _1 b( R! ?1 n/ r5 {: }

  25. : A9 w; U: r4 k6 k- W
  26. PDesc           STRUC
    9 @8 ]8 h. `5 ^' m% Q
  27.         Limit           DW      0 ;16位界限+ {8 E: G; ~7 Q6 u) R- Z  q) a7 y
  28.         Base            DD      0 ;32位基地址
    8 J8 z* {! r+ s9 ?
  29. PDesc           ENDS
    ; j: Y; Y6 F+ Y
  30. + |$ {4 h+ N- C3 f, o8 S
  31. GDT_def         Label   Fword/ s- j+ P2 m: c$ Z
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    1 a8 G: V0 B) r- o) N5 k
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    " E1 c7 T6 O! q, ~* _. K* q* S( O" z
  34. " X! U5 L$ r3 w# {, S" ?
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    , @* d; ?: }6 ]  d
  36. DSEG            ENDS                          ;数据段定义结束5 {7 _0 @- A" ^( g8 B
  37. 8 r& R* A! e, T+ g3 w# X
  38. CSEG            SEGMENT USE16                 ;16位代码段
    ) P7 |) V( ~# I. m5 m2 [: k
  39.                 ASSUME  CS:CSEG,DS:DSEG) h" C3 C+ O- l9 }/ F
  40. .Startup7 n! F, T: ~( P2 f( y" {( c
  41.         call      Set4gb
    6 g7 p! b5 d& B. h- j. T
  42. ;
    0 C, R* X& T% V2 j( g1 Q( u$ a2 s
  43. ;       fs, gs即能访问4GB空间
    9 w1 r4 M3 {8 k% ^3 g
  44. ;       write your code in here.; |3 [2 X6 y9 ^9 |7 m! J- C; ~
  45. ;
    # t) M5 M9 v1 |' o  \) x
  46.         .exit0 w! [/ Z2 X  e
  47.         ! m5 r: r7 i$ j5 Q* O: a" [
  48. Set4gb          PROC      NEAR
    7 P+ x1 W- w) D% R  m: q8 F3 n3 [
  49.         in        al, 92h
    4 K% y5 R, x7 v3 H6 b7 S4 F. f- f
  50.         or        al, 002' ?: O( G4 h' e8 U1 R
  51.         out       092h, al
    , d( X' f4 `/ g8 x! s( p4 f
  52.         out       0edh, al
    ' L, ]; Z1 T, y$ }5 Y
  53. , s% `* T1 }- u) H6 Z  q6 M" w9 o
  54.         cli
    # X4 u6 O( N: d) X# H+ v  s! |
  55. + x; V! d# w+ Z4 G8 R3 f
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    : A7 X! P# m, P+ a
  57. 5 j9 K% `% u) G7 z9 l4 [" w9 W
  58.         mov       eax, ds
    3 ^1 s/ B" e7 o( U: D
  59.         shl       eax, 4
    ) Y5 V% B* U! y9 z% X- {
  60.         xor       ebx, ebx* d/ i/ ^2 N1 `3 V
  61.         mov       bx, offset GDT_def. p: t$ H1 i' y- [6 G
  62.         add       eax, ebx
    $ O/ i3 X: d6 m; y5 K
  63.         mov       dword ptr GDT_Addr.Base, eax2 |8 R$ ]1 i7 B" w+ I; ]
  64.         lgdt      fword ptr GDT_Addr
    8 F( _/ x" M- W* `0 l" h( P4 r
  65. " B/ O, z6 T4 o' }
  66.         mov       bx, 8
    + C5 S+ X/ Q2 a+ N, r
  67.         mov       eax, cr0
      S) A5 y$ f1 Z' Q) Z. `9 E
  68.         or        al, 1
    3 G" P+ z* c; ]8 b  J" f
  69.         mov       cr0, eax
    % c+ p9 P0 |# g4 \( j3 S
  70. % [! ?: l4 @0 a2 z* V  I. Z
  71.         jmp       pMod
    ) }2 q4 o! P. A) C6 {: U) }* H2 W
  72.     pMod:; X0 ?5 M2 u, {) X' @$ g( X, o+ `
  73. 3 E8 a/ g# P7 V- v
  74.         mov       fs, bx/ Y( T. k& M9 I) |; d) i8 a
  75.         mov       gs, bx; [, Z9 F  \( {5 ~
  76.         and       al, 0FEh0 J$ W  L8 L0 J/ B+ a6 l7 ^! t
  77.         mov       cr0, eax
    , x% [/ a: N5 W# f2 d) M; u
  78.         
    ! N2 G* y( [9 ~5 n; H
  79.         jmp       rMod
    / y5 d+ n" S& m5 p: n
  80.     rMod:- T$ O; \% t4 p( E! L! h) }3 m

  81. - ]4 c! A7 R% @
  82.         mov       ax, 0
    7 x9 c- {* w& n+ m+ `' s+ B0 c
  83.         mov       fs, ax$ n$ W, G* y0 A
  84.         mov       gs, ax
    5 @5 }7 `- ]5 N+ O
  85.         
    * |/ ?* m, f: R# n% L" e
  86.         ; 在2M的位置测试写一下数据
    . ~- X7 S9 C/ F6 h) T
  87.         mov       esi, 200000h
    3 V" F' V  t3 p! }
  88.         mov       dword ptr fs:[esi], 055aa55aah
    + `8 x$ K/ a' N! G
  89.         ; 用RU去看看200000h的位置是否是此数据....
    ; M8 S2 F' O) v. f- k( d1 w

  90. 3 @7 w" n% \, y; r6 F: R
  91.         sti
    % I1 G5 N# c# ^; x$ w$ U
  92.         ret
    9 Y) ~  t2 o* x+ `9 M
  93. Set4gb  ENDP
    / s9 [! C- Q# O
  94.       
    0 {+ v( ~. O! R' R5 ^' }; J
  95. CSEG           ENDS                              ;代码段定义结束% E; [/ E2 d, {. M. `- n
  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选 803868 C+ g7 g0 ], b! D
; N+ S# _, M9 v1 B$ a
option->compiler->code generation中的option选中, [X] compile via assembler( W2 g* \) i9 z; w$ A3 u' ~: A
# @6 j# q0 N9 X# u
[ 本帖最后由 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;9 J( {! B: ], h3 h
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
+ q6 D! l, S8 B" H3 X2 }- |8 v
$ a2 M# e: z" c5 Q0 J; u+ @$ sGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;* q' [1 W- v% L' I3 x
替换如下,1 b5 P6 r, I% V) Z# g
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>, @, P3 L: a) G# v
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
/ ]' z$ z6 `5 r+ w' ]! y. ?
3 k$ Y3 l: f; B2 Z5 i  v; R9 j# r  IGDT_Addr        PDesc   <$-GDT_def-1, >
( p5 |. s) y! B4 {; v' I6 x这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 - e, q, G/ {6 \  Q) B
option->compiler->advanced code generation中的instruction set选 80386: _& j7 q( L- {7 u

$ t. z6 K" d4 Yoption->compiler->code generation中的option选中, [X] compile via assembler
! k. j. |3 s& y* h$ @7 T) x
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 1 n, g+ T+ M* p' h3 _$ z: N+ ^0 H

: @; P; W6 m7 C: W" R4 c5 {   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

) s0 E) M7 Y# l$ L  x$ H2 ~2 F  f, u0 V
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-19 22:02 , Processed in 0.063522 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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