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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。! d* l. f6 x% B% b) t2 h4 F8 o
' h. _0 d' z4 l- d  h7 B
这是C的
  1. /********************************************************************. {7 t8 h# m" K
  2. *    File: DOS4G.H                                                  *( Q. s  Z' E7 ~  d$ V) R  h. o! n
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    6 c/ b! g) h# r2 T; E3 j$ g- Q; {
  4. *                                                                   *# y3 W' ?# a7 l1 r' E' f  S
  5. *    ========================Title===============================   *! B1 _5 D( S: d
  6. *        这个函数是让系统进入DOS 4G模式                             *
    1 W  l- q8 a8 U$ `5 a/ P# G4 t
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *5 B% n# j6 S# G! B( y
  8. *                                                                   *! ?/ w, E5 L) K  b
  9. *       使用: openA20(); set4gb();                                  *
    ! D% |- \1 F3 }/ L2 D8 _
  10. *                                                                   *" P  J% u; L4 E
  11. *   ===========================History==========================    *
    $ \. M  Z9 G$ @
  12. *    author: bini                                                   *
    2 Q* X3 n" I4 t- b  P% v9 C: Q7 v
  13. *      date: 2004-11-30  Frist version.                             *
    " h2 c4 c) m9 S+ ?+ Z
  14. ********************************************************************/
    1 l! P8 I1 r$ ?% ?- f
  15. : |6 U, a6 b' Q$ _3 [$ ~$ O+ P
  16. #include <conio.h>( X/ R- ^2 {% ]1 c* a$ Y
  17. #pragma inline. J2 w( {/ z" Z+ N( l6 e$ d

  18. 3 ]; l" ~/ p6 X7 L+ C' d* v# v* O
  19. /***********************************************5 x" q' x" R7 W! [0 H
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    4 l, {9 `9 k- k6 |9 Z
  21. *    第二个为一个数据段,没有代码段。           *
    % r+ {$ A1 H$ n
  22. ***********************************************/4 }5 L3 T) P; b- R' W7 U
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*// j" I8 u7 d3 i) Z/ U- X4 W1 P0 I
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, 8 G0 I: _# g1 V2 M
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF 0 x0 j0 b, L4 V+ ^) C
  26.                                       */3 `5 |/ ^" b: c, Y: a
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )' S+ G7 \$ ?) M! g
  28.                                          最高字节为 base( bit 24~31 )
    ) A9 O# r+ ^$ M* e. h- u) X3 E( S3 R
  29.                                          : t! m) H9 c2 S' W# c; |
  30.                                          属性Attrib = 0x8F92" I5 }; o" I- v7 U) l* f
  31.                                          
    2 u- ?$ y' h3 D6 {4 f1 D0 d% J& o
  32.                                              属性位Hibyte低四位为
    - h( r3 C  r0 W9 B$ W5 P, A
  33.                                                  Limit( 16~19 )=F! b5 S3 c# N) F# l5 V% v/ N. R: O
  34.                                              属性位Hibyte bit7 为粒度
    $ \3 u0 U. w/ _/ U
  35.                                                  (值1=4KB粒度)
    ( z: P; K" Y* Z1 c) x' a7 V
  36.                                                  8F & 0x80 = 1+ G1 k3 W% V! ~! r1 s9 ^
  37.                                                 
    5 m! t8 l' f( Z4 v! h* C
  38.                                              属性位Lowbyte低四位为段类型,值=2& _; L0 i$ q1 o
  39.                                                  表示为可读/写段
    7 T0 ]. `% W' |7 J- Z; }
  40.                                              属性位Hibyte高四位=9,bit3=1表示:+ R* z* ^* K* D, b) y+ Q% T0 y% @
  41.                                                  描述符对地址转换是有效的。
    : T4 {/ _& Q) a: {5 r$ x7 y% D
  42.                                                  bit0=1表示为:# K) }! {% g* ?  g3 W4 c6 z
  43.                                                  系统段描述符。而不是门描述符。4 K9 r$ R9 ]+ y0 B! z! I+ w
  44.                                              
    ; ~) Q6 j- M% B+ T
  45.                                          */
    ( \+ [+ u0 l) K/ P- N+ G% X6 |

  46. 6 p' N# ]/ u' S
  47. /****************************************
    % J+ }7 ^9 r3 G) {4 ?8 @
  48. *    GDTR寄存器, 48bit=6bytes            *
    5 ?/ z" {. ?; s$ o# W% T) H
  49. *    +-------------------------------+   *, |4 L% f9 p1 D3 O) q. [
  50. *    |   32bit基地址       |16bit界限|   ** @. P2 i- q) ]% O; v2 `# `6 Z
  51. *    +-------------------------------+   *
    6 E" c! e- D+ |! Z7 y) [: s
  52. ****************************************/6 n; Y0 g2 V: f) T* k
  53. unsigned char GDT_Addr[6]={0};$ k7 a4 x9 I9 Z/ Z0 C
  54. # C5 u2 H* M( X0 \9 `2 @0 S9 N/ h
  55. /****************
    4 ~6 S& [. W" ~3 ?* U- {! N
  56. *    打开A20门    *
    ( r% }! t9 H9 T6 g: `, V
  57. ****************/
    " X% f& s/ c; V6 j% O! I4 H
  58. void openA20(void)
    7 T  }( }$ d6 w# H/ H0 v
  59. {  \+ K! V3 `2 G8 c
  60.     asm{" G& t, Q8 u$ z3 K- {! i! Q
  61.         pusha
    4 P& U5 J* K" Z, q- g; ?
  62.         in         al, 92H: C  X' ?6 ?$ K9 I
  63.         or         al, 0x02" v. Q* B& f; O2 a! G
  64.         out        0x92, al
    5 g- H+ P5 `; h& }5 r
  65.         out        0xed, al* @" N/ B' C( g# o
  66.         popa
    4 h7 _9 l7 L( t8 g1 r7 ]- J* H
  67.     }
    ! ?1 j- G. r8 }: _6 b7 J
  68. }" T* ^( n8 f" j3 l8 P

  69. + E, x1 `! `3 E0 \5 C. U
  70. /***********************************************, I2 C6 E: o0 Y) H1 d. v
  71. *    函数功能:进入DOS4G                       *  |( s2 H* M  d( G
  72. *    ====================                      *  r* ^8 _; B2 [5 k( D9 w0 V
  73. *                                              *
    8 x4 X( E; i) `4 k3 V' M. x4 O  g
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    9 R1 x) V9 v+ n4 {
  75. *   如:                                       *# u  b2 ?7 m/ S
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
      K" z) ]  Z8 m* b' U4 {
  77. *       表示为 2个GTD                          *
    2 t) J! `9 \' O4 a6 Z0 C
  78. *                                              *# }" @' E& R: d9 U" Y5 R6 V
  79. *    选择子为所在描述符内的字节偏移。          *
    5 E; Y- B9 K/ s% f& `4 ?+ V0 y
  80. *                                              *
    5 y6 c1 h' n: R$ x  E+ B3 R) j% R
  81. ***********************************************/* g9 \% A; _- J! m
  82. void set4gb(void)
    - l) D' x' c/ w
  83. {* N7 a: r- {8 F3 h0 G6 o
  84.     asm{
    2 R" }' w. Y: |
  85.         cli$ V  E9 s4 ^, H  _4 e) v
  86.         /****************************************1 \  I& t# m' R" G2 a) R+ u
  87.         *    GDTR寄存器                          *( ^0 A# ^- \$ |: j; R: W" c0 V
  88.         *    +-------------------------------+   *" X9 X' j. ?5 j9 o) z* P: \# C
  89.         *    |   32bit基地址       |16bit界限|   *
    2 k  x8 S; W1 e1 C3 s" z
  90.         *    +-------------------------------+   *
    - ]% S0 X( R4 c5 ^
  91.         *****************************************/2 S4 g' v- o" r
  92.         /*********************
    ' }% [; |8 @5 a% S7 v
  93.         *        得出段界限       *
    $ b3 G9 @) _* J  M# f
  94.         *********************/
    : Q' Z6 U4 t, p1 ]6 Q" s
  95.         mov        word ptr GDT_Addr[0], (2*8-1);6 C% [. k& h! ~# M' h5 }5 R
  96.         /********************************************/ _8 u6 A5 r; o8 Y
  97.         *    计算GDT表的32位基地址,存入GDTR        *2 m" Y- D( {7 t& I+ [
  98.         ********************************************/* c$ P' S( a0 W4 V; q( W" z
  99.         mov        eax, ds2 `* B* n6 x+ d) u6 @
  100.         shl        eax, 4
    6 T* V( @+ C' N  u$ f+ g
  101.         xor        ebx, ebx: p. G' ]. ^( ^+ w$ ~% p6 [
  102.         mov        bx, offset GDT_def
    ' [2 o# m4 Y$ z2 C' u
  103.         add        eax, ebx3 A; l1 I, i9 x2 @6 p0 X
  104.         mov        dword ptr GDT_Addr[2], eax- b+ N7 L3 q, ?! U
  105.         lgdt       fword ptr GDT_Addr
    $ u, U$ E0 S# L  T* A! Z
  106.         /********************# N- K' m3 X" C* s. ?! D* x/ C
  107.         *   选择子偏移      *
    : V  U4 I$ P7 i' s$ ?3 H2 Z
  108.         ********************/
    - r% W* O4 Z) N+ k+ `: S
  109.         mov        bx, 8# P  G0 ^, p* `' Y. I
  110.         mov        eax, cr0
    ' ?, m3 W1 `" P5 J4 K
  111.         or         al, 1
      p4 W2 W; `. E
  112.         /**********************
    8 k/ |4 }# {) u  `* \
  113.         *     进入保护模式    *
    3 G) a& m/ t. L1 Q' F: V
  114.         **********************/
    3 d- W( A2 W, o: L/ B) I
  115.         mov        cr0, eax1 d) S" Z- G8 ^* O2 m7 b- f
  116.         jmp        pMod
    1 r2 ^2 ]: h( k1 b* C9 c& M
  117.     }4 n. e& a% L2 e0 T

  118. 6 I6 X: u" O5 Q" B  \
  119.     pMod: asm{" z8 a1 i1 O/ S  }; t2 |
  120.            /************************************************************, l  ~* B% ^+ |- ^- V
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *$ P6 e7 e# }# j6 ?( w. Y" e
  122.            ************************************************************// O. z0 c& h9 u. l, x; K/ P- m
  123.         mov        fs, bx/ z/ L# I. K# h( @! H
  124.         mov        gs, bx# [0 q* L  Z( W
  125.         and        al, 0x0FE$ o) `; a* [5 x& s  k" G
  126.         /******************# j8 h0 V0 b! c* v0 L8 S
  127.         * 进入实模式      *, N% R6 J4 }6 k/ s5 O& N- g
  128.         ******************/
    6 U, ^- V! x! V0 b1 m
  129.         mov        cr0, eax4 w" `- b# H. k3 q8 }$ c- ~
  130.         jmp        rMod
    , Q6 ]/ q# W6 x
  131.        }0 ]* Y# n0 t+ P: `5 r

  132. - E9 b1 {" O7 q" r4 X1 ^
  133.     rMod: asm{
    * c# k* {* a1 c! v9 [' }
  134.         /* ******************************************************************; V9 G& y# |" K% F, H7 D( \0 E, J& I
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *# B" c) e! ]2 P# c( Z: }6 T/ G
  136.         ********************************************************************/( K/ Z* b. I  y; o+ x
  137.         mov        ax, 0
    % i* A- o( M2 u, w) _
  138.         mov        fs, ax
    $ [% h8 ^% X$ k# T
  139.         mov        gs, ax- e6 j$ V2 N- D! P3 \. |- X
  140.         sti
    , n5 S* P4 m3 ~- e5 ?; o
  141.     }
    ! \! J/ Y& I$ [0 f9 u3 n
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    7 B. X( o" Y; b. b2 y
  2. ;*    File: DOS4G.asm                                                *% @* L8 Y( K! u  ]+ x; Z# b
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *" [4 \2 Y! O& U2 f
  4. ;*                                                                   *
    5 `4 Q" f% r& [6 J" b- w3 g
  5. ;*    ========================Title===============================   *
    4 T7 _5 {: `) ?4 k1 l
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *& G5 U2 \# J4 H1 _8 f3 u! _. t
  7. ;*                                                                   *
    4 K  o/ T% X/ X- v4 Z* c
  8. ;*   ===========================History==========================    *! ?2 M7 l2 c5 ~0 M8 ]
  9. ;*    author: bini                                                   *
    $ W8 A3 t& r6 E! l3 J8 L5 h+ H* r
  10. ;*      date: 2008-10-08  Frist version.                             *6 H% O8 p% u/ i
  11. ;********************************************************************/
    ; d, ?6 t9 u# V3 c5 `! o$ u" @
  12. .model small+ x% s1 T( p- |9 Y$ f3 h5 p8 \; U
  13. .586p
    * N4 L0 ]' ~' m: j' A  }
  14. . u& F1 z3 \9 ]6 T" e6 Y
  15. DSEG  SEGMENT   USE16                 ;16位数据段8 \* G* d: P4 o8 j4 D2 U

  16. , d/ w% E+ z" m+ q) b1 n
  17. DESC            STRUC
    * I5 e, E5 k* Z9 G. {8 L
  18.         LimitL          DW      0 ;段界限(BIT0-15)& o9 i' V; l; b0 Q* ^1 E) e
  19.         BaseL           DW      0 ;段基地址(BIT0-15)+ q- p1 ]  q$ e& x
  20.         BaseM           DB      0 ;段基地址(BIT16-23)! e% t4 |& X$ @1 r1 j% Q
  21.         Attributes      DB      0 ;段属性& Y, e3 Q  A: l, y
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)& Z; g6 I0 C* J: }
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    - O' n! w7 d- ?5 _* `8 y
  24. DESC            ENDS; X, ~# ^* t9 n0 _+ X
  25. * T. g! T- b% T1 v
  26. PDesc           STRUC1 g& E; X2 }2 e2 q2 a' g
  27.         Limit           DW      0 ;16位界限
    3 a3 V" r8 ]) Q% |4 _9 H$ _
  28.         Base            DD      0 ;32位基地址* m7 e  f5 V) D! E- u) w  x
  29. PDesc           ENDS
    1 J1 D1 J. X( h" h) C$ B$ q
  30. 2 C, k. |  l- H$ B2 w/ b6 Y+ j! {! c/ G
  31. GDT_def         Label   Fword
    7 i) ^; L; W: F0 J
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
      @  f" y# M9 A  A& R" z2 e
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>9 Z* j+ f. d9 @
  34. 0 q4 u' h7 \5 }0 a6 l  v; Z8 m* w
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    ( _1 z" @1 `" z+ |* a
  36. DSEG            ENDS                          ;数据段定义结束0 V. u2 m/ V1 s6 R  ~6 w7 q2 w; a
  37. 1 q9 |  P4 A" {% k0 d
  38. CSEG            SEGMENT USE16                 ;16位代码段
    ' x- B, R4 R# ^3 r
  39.                 ASSUME  CS:CSEG,DS:DSEG
    7 ^+ V0 Y/ z" `' V0 h. P- h
  40. .Startup
    3 G7 j. ]" k5 x6 Z
  41.         call      Set4gb
    ! J0 d* ?3 {4 k% c+ T/ ]9 [
  42. ;" w& H1 s, x1 z  A0 |/ p' F4 a5 A* l  D
  43. ;       fs, gs即能访问4GB空间" f' @8 e  m( G  t& [4 M# o
  44. ;       write your code in here.8 r# ~9 M% T3 G
  45. ;1 |  N8 O! Y9 p$ G
  46.         .exit
    0 h* r4 j' T; V8 T) X: d
  47.         
    : \% J& x  Y: R& A8 `
  48. Set4gb          PROC      NEAR' A5 d. e7 k& {4 y; G/ z" N
  49.         in        al, 92h
    - u0 u1 M6 m: n% m7 O8 n) i* n
  50.         or        al, 002
    ! H0 W. Q( U5 y% T8 @2 V, Z8 `" u5 @) }
  51.         out       092h, al
    ) m. i5 h" m7 e6 r8 a! D; {4 I
  52.         out       0edh, al
    : _2 r; d  M# u- A9 M

  53. 5 {) Q0 @4 t3 f/ ~+ \! L
  54.         cli  D- N8 k4 Q* L! I
  55. ! U' s3 h# s0 Z  z" n! C
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    - s% Q* \9 n: _

  57. / c2 [6 ~9 M# ^
  58.         mov       eax, ds
    5 j, M; v: M: q" V) P
  59.         shl       eax, 4
    / J7 Y4 s; j' y+ C
  60.         xor       ebx, ebx3 [# y' X& B3 [/ d. N
  61.         mov       bx, offset GDT_def
    & C" C+ e- b. Y+ g! c, S1 m
  62.         add       eax, ebx" l/ Y$ R: V0 J4 O# _* `6 G) M4 K
  63.         mov       dword ptr GDT_Addr.Base, eax2 d; o3 w( [( X) X1 @
  64.         lgdt      fword ptr GDT_Addr/ V8 U* P# B( @$ E4 R5 L

  65. 0 _( D0 R$ o# E. W6 I( s% c' `
  66.         mov       bx, 8! {' \% B  A4 Y4 e% C. e
  67.         mov       eax, cr01 T3 U" B3 w& B% u  {3 ^( b! G- r
  68.         or        al, 1+ b. X( t1 Z: x
  69.         mov       cr0, eax
    0 S" ^% u9 _2 B& D
  70. $ |6 N: V3 j+ B4 N) H
  71.         jmp       pMod6 L8 N' r: ?) a5 h
  72.     pMod:" v; Y5 E9 Q6 I/ y

  73. " L8 S7 K5 n% y2 ?
  74.         mov       fs, bx6 w  G: n& b! g3 u2 m+ j% E5 ?
  75.         mov       gs, bx* Z+ E1 G8 _, [" c! j
  76.         and       al, 0FEh* H1 {$ Q- F( ~2 F6 |9 ?
  77.         mov       cr0, eax
    7 I+ G9 Q  q; A7 T, |& Q3 y
  78.         
    ' Q% o, D; J: T5 r& z2 m$ E  d' y
  79.         jmp       rMod
    ! U- ~: f& h+ i
  80.     rMod:
    8 M; d+ O2 ~- [2 f& [, I

  81. 1 \* ]9 |9 m9 O+ \  d- O
  82.         mov       ax, 0
    " Y( A( j( g" N& R  ]3 D) b
  83.         mov       fs, ax
    ; @0 m; w- O3 k' x' a3 b" M
  84.         mov       gs, ax
    8 B" K: w+ t, H! i- ]! F6 l
  85.         
    , C% x4 R. @  r- X1 K. D
  86.         ; 在2M的位置测试写一下数据
    5 [0 l" j" ~; f/ q, r
  87.         mov       esi, 200000h
    + o' X( `8 p- {7 x5 K
  88.         mov       dword ptr fs:[esi], 055aa55aah7 @9 b: H" f4 M5 K5 z
  89.         ; 用RU去看看200000h的位置是否是此数据....- t! G& k# ~8 `% e$ O  s. X
  90. 1 R7 e# q% B! S% _( V; ~
  91.         sti, }% u( Z- e- H0 L
  92.         ret
    * a; ~. a+ E% }) L6 `" C
  93. Set4gb  ENDP
    4 g, m1 f, u. _4 a8 A0 @6 y/ y
  94.       
    6 f- s8 D# w! X& M
  95. CSEG           ENDS                              ;代码段定义结束
      U. d3 |4 C' k/ j$ \
  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选 803869 }  C, B3 Y8 C3 \; U, L$ u

8 s  L! B/ `' D& I6 ~( H) Z6 hoption->compiler->code generation中的option选中, [X] compile via assembler
7 ~& \4 {1 n8 J2 |2 l& P* Q9 H. i3 ?$ I! t( a9 q
[ 本帖最后由 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;4 h; m( S  D( K4 N
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
8 n% C" F9 p# K+ v+ K# m, P. J, g2 F" X8 A
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
; w$ w, H9 P2 y" B( c2 s6 i 替换如下,4 X7 @2 J" ?! w! }  ^9 e
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
7 Y9 u: P$ c4 z+ RData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
0 a. w) U* A8 g! ]  ^0 q+ t; v, |, W4 K- \% `
GDT_Addr        PDesc   <$-GDT_def-1, >5 p# g! b/ d1 U: @/ Q
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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) l; L, [6 R: `( boption->compiler->advanced code generation中的instruction set选 80386+ a8 N6 i7 ^7 c/ F& w8 w
3 z, c& l) X; W7 }1 o( h0 U* U
option->compiler->code generation中的option选中, [X] compile via assembler
) Z% y$ [- i" S& }! r1 B8 L
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
+ u. E! l/ i8 d% h+ `5 _+ [  r& c& b8 M2 b2 i1 I. Z  n
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

( O4 x" O8 |6 S* E4 y3 x1 W' y- u4 ~+ _' H+ o7 A) ^! `
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-24 22:37 , Processed in 0.093794 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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