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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。( j- R4 C$ d% x/ l0 O$ S. X0 E

1 K* J% z' J* N2 s/ {: o这是C的
  1. /********************************************************************# w, K3 U7 z5 C
  2. *    File: DOS4G.H                                                  *
    0 ?3 r% r& g- C1 g& E( {) x
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    % _- N, U  x4 s( x4 {. P
  4. *                                                                   *
    - w% }$ }' w0 y, `8 V* d. |
  5. *    ========================Title===============================   *
    % D* \- p6 V0 C$ ~" {
  6. *        这个函数是让系统进入DOS 4G模式                             *
    ) n% x' M' c; r3 N5 Y3 j
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *2 H9 i0 n9 l4 p  R
  8. *                                                                   *
    : k8 E* d5 f' Y  ?
  9. *       使用: openA20(); set4gb();                                  *7 Z% b, f5 }/ I3 F) U4 I
  10. *                                                                   *! L& o/ i) v/ K5 K7 `& u
  11. *   ===========================History==========================    *1 j1 ~& T$ H. O" O- N/ g8 N
  12. *    author: bini                                                   *. N5 |7 h2 {: L) F
  13. *      date: 2004-11-30  Frist version.                             *0 c7 m+ [+ O0 [! n8 U
  14. ********************************************************************/
    4 Z+ J" q/ `) |* v3 j" A/ G
  15. # @8 q% }! k# z( t/ P
  16. #include <conio.h>$ V, y" _( G8 b: c3 o6 b
  17. #pragma inline' S$ s6 B2 `; V3 c

  18. 3 \8 `, ^3 x; G
  19. /***********************************************) M0 X5 M4 O! {5 s, v! G, Q9 _
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    0 o2 ~1 y, J; u! E( ^1 K- F. v
  21. *    第二个为一个数据段,没有代码段。           *
    3 u2 L3 ^4 I" R  }9 A% ]
  22. ***********************************************/
    3 i6 \0 ^0 N( ~8 R
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/9 U2 N6 h8 h9 e0 f2 h/ z2 t& o1 H2 U2 K
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, % R, B4 R& p: C* K2 @
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    # _) \6 X4 k% k) \' f
  26.                                       */
    : r* {0 G  D# m* s9 I* T' Y& X! o
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    9 l: H9 ~2 a; @$ A2 [- e
  28.                                          最高字节为 base( bit 24~31 )2 a6 K  i( V* m2 d/ W+ x
  29.                                          
    4 R3 W( P) O) a9 g
  30.                                          属性Attrib = 0x8F92* O0 r! W9 e6 W8 y& q
  31.                                          . e3 v  H4 ^% R) V5 o9 B3 v/ L
  32.                                              属性位Hibyte低四位为
    ! H( g* P3 \4 u5 ?/ k( E
  33.                                                  Limit( 16~19 )=F# g% ?4 K/ l) y7 e1 _- Z( V
  34.                                              属性位Hibyte bit7 为粒度, d# e( r* `: f. z  s9 A( N  P, }' W
  35.                                                  (值1=4KB粒度)/ A* O5 ]% F" `$ L2 B
  36.                                                  8F & 0x80 = 1# g) M. ], S- S; L. K
  37.                                                  ' l1 Q1 C; B1 J7 Y1 T
  38.                                              属性位Lowbyte低四位为段类型,值=2
    $ ?/ Y" W% K& |
  39.                                                  表示为可读/写段
    3 e$ x$ Q1 `/ {$ e3 s8 Q
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    ) G( }  Q; N8 b" t# Q! K$ ~
  41.                                                  描述符对地址转换是有效的。
    & @' j" W% f3 L3 C8 g: L
  42.                                                  bit0=1表示为:7 e' _7 ^6 e- C8 o
  43.                                                  系统段描述符。而不是门描述符。
      a$ K8 t4 d  r0 `& v$ r% E7 Q, ?
  44.                                              - p6 Z6 l& s- F* ]6 K
  45.                                          */
    ; I8 }( R, n  n. x7 x

  46. 3 Z" d* F: h  a' q) `: ~1 E; M
  47. /****************************************
    2 ?4 Z; Q: d) i/ Z! }" ?
  48. *    GDTR寄存器, 48bit=6bytes            ** h  D4 W" ]8 Z  {! [' [
  49. *    +-------------------------------+   *1 S' W7 X" r  Q% C# f% ^5 l* y# y
  50. *    |   32bit基地址       |16bit界限|   *: O& C5 t  f$ X
  51. *    +-------------------------------+   *
    5 i" h& U$ J/ }9 h
  52. ****************************************/. _  A/ x! d2 i* V9 n. [' E4 F8 a
  53. unsigned char GDT_Addr[6]={0};
    + Q5 W4 ~% E( O; X2 z5 o

  54. 5 d4 J4 z/ P* A
  55. /****************
    9 H8 @% E' m1 P7 q
  56. *    打开A20门    *# E/ l  E. P; p5 c* n- k6 \# t
  57. ****************/
    1 G- P; M+ i( t5 j6 D% ]
  58. void openA20(void)
    % r8 M% |7 W5 \, {) ?9 ]8 @
  59. {' o) t& b7 m5 K& t, t/ X1 K/ t1 T
  60.     asm{
    1 T& }; A. Q% I. ^/ ^7 {
  61.         pusha
    ; q7 \) P- D3 T- L% M9 h. |
  62.         in         al, 92H
    * H: B) I( @& n0 I) v# B
  63.         or         al, 0x02
    " m% w3 l! I: ^2 |$ o( y$ v
  64.         out        0x92, al+ P, I, n: I( T( O: b
  65.         out        0xed, al! x9 L- O5 x6 R8 ~* \8 B3 D
  66.         popa
    % \1 Y9 n% S9 s2 ~( H" \
  67.     }! l6 r$ B0 }' m0 N9 L6 e8 }
  68. }& x8 ]5 O/ Z" [# y0 a! F
  69. + c3 ]& q& s3 M
  70. /***********************************************6 D6 n: ?- U9 m6 S. R  V
  71. *    函数功能:进入DOS4G                       *% c& _0 ?) R% Y8 `! t( O6 \6 n
  72. *    ====================                      *
    $ \- D3 @' \; R& h1 N% X
  73. *                                              *
    2 o- T+ q1 E# [0 I* Z0 p
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *# J, j, Q- {& K& Q( ~
  75. *   如:                                       *# X4 n* B. Z! Q1 b$ q
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *5 y( j1 F( n9 F1 A8 C3 g0 m+ \# O
  77. *       表示为 2个GTD                          *. D: D" U9 [# V2 e
  78. *                                              *2 A+ F3 i& G& r/ B3 D
  79. *    选择子为所在描述符内的字节偏移。          *
    8 r$ r2 E1 W6 U& S0 L
  80. *                                              *7 e% H0 g) U+ D, A& b# b
  81. ***********************************************/: ~' x5 R, z8 E7 r* ?4 \" ~& ^
  82. void set4gb(void): d% f0 m0 Y6 ?5 Z& u% E; i
  83. {
    6 F2 J  M2 U/ D. o
  84.     asm{
    6 M% I! V# r( p8 t* a* \( ]4 [( z# Q
  85.         cli# w" |; \( U3 ]/ }5 j
  86.         /****************************************, {8 r1 V: i2 A5 H' E0 B  d# x
  87.         *    GDTR寄存器                          *
    - G, i) ~& ^$ \3 L7 z7 }- m
  88.         *    +-------------------------------+   *
    ! m8 W1 ]! y/ t, p$ x
  89.         *    |   32bit基地址       |16bit界限|   *- v7 H# ?% ]' G3 q& K
  90.         *    +-------------------------------+   *
    6 u1 F7 U9 [7 {3 t
  91.         *****************************************/$ n( {7 o" L& e1 h, T8 r
  92.         /*********************9 s9 y. i2 U8 E
  93.         *        得出段界限       *
    4 a1 Y# N6 `% I/ R5 @- Y+ A* L
  94.         *********************/
    - n! b* _; X0 e% X5 }
  95.         mov        word ptr GDT_Addr[0], (2*8-1);* T% @9 T1 P; y" h4 G
  96.         /********************************************; ]5 b4 O* i! n/ n
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    / R2 Q+ T. b* Q% l% T" _9 e
  98.         ********************************************/- I7 P# P& Q9 C2 x! w3 f- f
  99.         mov        eax, ds
    * J$ ~2 n$ J8 b  |$ J! T; R
  100.         shl        eax, 42 p; f$ H5 t, L9 [! V0 V
  101.         xor        ebx, ebx
    ! ~6 ^: c+ a: o: @2 H% N1 M
  102.         mov        bx, offset GDT_def
    8 Y3 _1 }$ X& p9 s$ t  q: C
  103.         add        eax, ebx
    7 l; j% V1 A9 S
  104.         mov        dword ptr GDT_Addr[2], eax
    4 i$ \; c" ~/ M: J2 ~" m. q, B! x
  105.         lgdt       fword ptr GDT_Addr' R5 ?7 Z0 O: V( a' J4 d; R
  106.         /********************4 g8 L' M" {% a: D1 i2 B% u
  107.         *   选择子偏移      *
    % [7 j! S$ x) G/ q8 ?
  108.         ********************/
    ! C3 m; @) M9 D. Y/ S; J
  109.         mov        bx, 8' c6 J( O2 z' O# a, b- z0 J
  110.         mov        eax, cr0& t" w% n  k8 }: C% T  X
  111.         or         al, 18 }! U; G& R( h7 B9 E
  112.         /**********************2 Z& B# m2 v2 r# w
  113.         *     进入保护模式    *4 |4 n$ N  i, Q# S: p' A$ @
  114.         **********************/8 {( E5 ^5 b7 l; q' n
  115.         mov        cr0, eax. @7 Z0 a! M" m: Z! p# A3 Y
  116.         jmp        pMod- q  m7 y  h$ V5 p$ @
  117.     }+ D+ A/ c. R2 u* z
  118. + c9 R8 f2 n* r, i+ H" D5 I7 M
  119.     pMod: asm{
    : T! k5 {' W7 f
  120.            /************************************************************
    7 w' x& Q4 c9 f/ G- D/ @0 h
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *7 r( i5 A5 W7 Z: W' G- Z- ~
  122.            ************************************************************/* h, x. W( V8 L0 {; y. m6 I0 Q; b
  123.         mov        fs, bx
    ( ]1 g4 H  l3 p7 V
  124.         mov        gs, bx( I1 F& p3 q- N2 {7 j1 K9 E
  125.         and        al, 0x0FE/ h, W' a" Y/ K* J% Y2 n
  126.         /******************
    - I7 X! k: z3 i
  127.         * 进入实模式      *
    . A5 S- u* U( h/ i
  128.         ******************/0 n: s) z2 y1 H
  129.         mov        cr0, eax
    ( j4 m9 b/ P! C. d" u
  130.         jmp        rMod
    % T0 s2 i3 X; K4 m( g
  131.        }' x! r! ^( E# A& n% U' Z2 s) S

  132. / e1 I% B3 j- T5 w  a$ G
  133.     rMod: asm{
    * N) [( p4 @) n1 e) e
  134.         /* ******************************************************************( d8 n  f& E3 H  {9 ~2 Z
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *& d7 n: ]3 r! a) t/ f% |
  136.         ********************************************************************/4 G' `1 i* p& v) V0 `8 r+ `4 w
  137.         mov        ax, 0
    ! G6 |& A" I: R0 T4 W% P
  138.         mov        fs, ax# i" |7 n- A$ y2 y4 B' P
  139.         mov        gs, ax
    . i4 S7 }9 ?) L# o& E
  140.         sti; }# d- G* n( j( e- w" D5 @
  141.     }
    & Y$ V0 X- j0 k  g
  142. }
复制代码
这是asm的
  1. ;/********************************************************************2 C+ w( l6 C9 z6 [
  2. ;*    File: DOS4G.asm                                                *, ^- O2 J$ u& u
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *& H! W+ p: z( G8 x$ b: `
  4. ;*                                                                   *
    & t  @0 |1 _* Z( @& Z% T
  5. ;*    ========================Title===============================   *, a1 s, h  i! }8 W& _3 ?9 p
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    ' A# y0 h1 w, m; d+ }' n7 c: I1 y
  7. ;*                                                                   *. Q, m- j8 [# B- w. g  A
  8. ;*   ===========================History==========================    *
    8 `" m$ |6 n. T; g) L, a' k
  9. ;*    author: bini                                                   *$ G. f* j4 w; P' F/ z8 j; l! |
  10. ;*      date: 2008-10-08  Frist version.                             *9 P* x- P0 `1 i
  11. ;********************************************************************/
    % u4 `; K3 t* s3 i  Y, X4 y: n6 `
  12. .model small! r6 U$ q4 h0 D+ I
  13. .586p  l' z8 h/ z+ R) R9 ?3 m! d

  14. ! c3 x5 ^. P0 Q8 X' h. k
  15. DSEG  SEGMENT   USE16                 ;16位数据段1 f! [$ a+ }7 B# [

  16. 1 }( l8 |! r9 @$ q4 F( N' X
  17. DESC            STRUC
    + D+ {4 j( T' y) `, m
  18.         LimitL          DW      0 ;段界限(BIT0-15)# ]3 s: y- M- ^9 j( e" s
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    9 B5 X, L' Z( L% {/ V" v; ~
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    6 n- m8 l" F' F( N
  21.         Attributes      DB      0 ;段属性
    . t+ W/ H/ V9 a9 F/ N& N
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)4 b, T1 u) b' s
  23.         BaseH           DB      0 ;段基地址(BIT24-31)" k  d) O! v( J; ?# @
  24. DESC            ENDS( G# ]3 ^) |$ w0 L+ f6 L$ f9 ~) K% ?
  25. 2 z2 d7 v4 L: V6 g; e! M5 X' w! V5 H4 z' A
  26. PDesc           STRUC
    6 J  B- {/ {: A6 M8 a1 [% A
  27.         Limit           DW      0 ;16位界限
    - B+ {$ z- Z9 i& F
  28.         Base            DD      0 ;32位基地址- E' {8 w/ s- |/ j
  29. PDesc           ENDS8 _1 u7 E1 O! @' Z& q
  30.   \" y" V# F/ Z, }; b8 X
  31. GDT_def         Label   Fword
    4 q5 _$ j* [0 K9 b5 c+ [, h  i
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>8 q" P6 [' N7 T9 }  w6 R
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>2 o' h& _* Z, z1 Z1 T9 a% q2 m
  34. ! P8 a$ j  I( b! J$ `6 m
  35. GDT_Addr        PDesc   <$-GDT_def-1, >5 E6 o1 D# B0 S
  36. DSEG            ENDS                          ;数据段定义结束
    3 v( i; _" {4 `) d* F0 p% x  m
  37. - a+ U: p- y, X% v- e
  38. CSEG            SEGMENT USE16                 ;16位代码段: f. N0 Z& |3 ^4 L
  39.                 ASSUME  CS:CSEG,DS:DSEG: ~8 W, O8 e, m7 E) {
  40. .Startup2 P* J- i# x7 S0 b4 |. E* H
  41.         call      Set4gb) G3 ^! c/ _& c7 s! f
  42. ;
    % |3 k4 T! i! c0 a7 t
  43. ;       fs, gs即能访问4GB空间
    $ f- O! Z. p8 y! Y+ I7 P" g8 S  p
  44. ;       write your code in here.
    % X1 O9 g* W$ y
  45. ;
    ( x+ k; v, g9 D/ u6 _+ O+ L1 S0 W/ v
  46.         .exit
    + c% t: o( n* R0 e/ c0 U9 j
  47.         + g% s/ w/ w4 `
  48. Set4gb          PROC      NEAR
    $ @! M( J7 H, M7 T/ ]
  49.         in        al, 92h
    & x. k; \1 i' P1 N: z
  50.         or        al, 0027 u% l6 l" `0 g
  51.         out       092h, al, y7 f9 @9 ^7 }* b# [/ ?
  52.         out       0edh, al! q& N4 e* G6 n

  53. & f4 Y1 Z2 t* D( @4 U
  54.         cli
    # L, z" `1 l& I  {* ^5 z

  55. ( T; f! y: j$ u. M+ u) ~
  56. ;        mov      word ptr GDT_Addr, (2*8-1);% W9 X0 w3 R! X. F5 M, _
  57. $ m7 t" ~  |5 r: |2 E
  58.         mov       eax, ds' E$ q  N7 W: h. _3 X! O- Y1 V
  59.         shl       eax, 48 s( J+ V2 D" i& \; ]
  60.         xor       ebx, ebx
    4 {( Q& A) W0 l* b1 V0 g. v( W* E0 v% D
  61.         mov       bx, offset GDT_def
    1 T: ~  D. h( E
  62.         add       eax, ebx
    - S$ f1 C8 y. H' N, D3 }4 z
  63.         mov       dword ptr GDT_Addr.Base, eax% I, U7 U. l! l4 G! O7 ?
  64.         lgdt      fword ptr GDT_Addr' f- R0 D7 }' m- x/ X( D  J
  65. . A+ |8 P/ y# d4 x5 u, v, V- a8 n1 s
  66.         mov       bx, 8' [6 N  P% a1 ~( M- p. k
  67.         mov       eax, cr0( S1 x! @/ R; X6 T
  68.         or        al, 1
    ' ?1 q4 J/ E: H2 ^
  69.         mov       cr0, eax( [! z2 ?( h. R' J6 w
  70. & ^% O) ?+ X# K2 c5 o
  71.         jmp       pMod
    , `5 W3 @+ X8 l- O2 H/ W- W
  72.     pMod:
    0 X/ u/ S( j- E; h5 W+ F

  73. " T; l$ T8 `' B3 e2 u* L% f
  74.         mov       fs, bx$ j: {' d: r' b% @) V1 u4 R3 j8 c1 I
  75.         mov       gs, bx& c) `3 y* t! [1 I0 s! X
  76.         and       al, 0FEh* k: w, o( W, ?( ~: J: H
  77.         mov       cr0, eax
    $ b. f- v; L1 o
  78.         
    / P- L7 s3 v  ~- Z
  79.         jmp       rMod& n, ]0 E  D, h# L& X
  80.     rMod:
    + O9 G$ w, a8 m" p
  81. 2 l9 |. x+ L& o  L) M+ @! X
  82.         mov       ax, 0+ L: Z* X/ f5 d6 d* Z( g
  83.         mov       fs, ax
    ( {1 O1 }1 m3 F) }
  84.         mov       gs, ax' o8 f# F/ [( K. P9 J
  85.         / R7 E3 A( P6 W+ z& ]6 I
  86.         ; 在2M的位置测试写一下数据  J- U, u# L, E7 c: A
  87.         mov       esi, 200000h
    # N0 P  p# P$ N9 a6 o1 |
  88.         mov       dword ptr fs:[esi], 055aa55aah
    / H' o( F' _# a% m4 G( h
  89.         ; 用RU去看看200000h的位置是否是此数据....5 M, }8 i( e) V7 H, {
  90. $ b. @  {0 k" Z6 d
  91.         sti
    7 J1 o7 X' @; q( w
  92.         ret
    / W: T/ T3 [. g- Y6 r* J  P8 T5 \
  93. Set4gb  ENDP. b1 n+ b" `% n4 o6 A$ W4 l; u
  94.        / A, o6 g0 D! T! y& W1 P6 ?
  95. CSEG           ENDS                              ;代码段定义结束' M/ {. p6 g* V6 O, A. P/ @! N7 \
  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% u! e4 P3 u. p0 w6 }! g9 B1 ^/ z

8 B5 P6 A9 i8 ^7 Q5 E) s: N4 r' Koption->compiler->code generation中的option选中, [X] compile via assembler- I& F1 `) x  S+ U
( T, D8 Q9 l. l1 N% d
[ 本帖最后由 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;
: R7 g* s5 }) Q1 U6 JData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;8 Y6 e% A! p2 Q3 [( q
) A  V. |3 K. M# H
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;9 L$ W- e) g5 S
替换如下,
  _4 j% N6 B. v' c8 I" R8 i5 GNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>0 ?6 Y+ r) }8 G6 l' J' y) ~
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>3 d% S; V/ [3 C, z, ?
* a8 v; i. Q9 R' Y( o3 N6 d; k) b
GDT_Addr        PDesc   <$-GDT_def-1, >9 t5 K! @+ I- R1 u* M# r9 @! U
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
4 H0 i1 q. l4 i. u0 }+ A, doption->compiler->advanced code generation中的instruction set选 80386; I; A0 b% z' T" \) j5 C
% y" Z+ D( @4 r! }9 ^6 N' M
option->compiler->code generation中的option选中, [X] compile via assembler
. D/ w6 e* @' M& i/ ~/ \3 {
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
5 ?* G# J* w+ e' @$ O% J1 d8 `' z" e0 Q% n" R/ {
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
) U5 I7 p: E) x7 D; D0 [# c( n
) N' o& P9 U, T7 S" u' X
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 16:03 , Processed in 0.055455 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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