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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。8 O( h5 W" ]. u2 I) k. t2 t) M1 f
) g% e0 m- c5 W+ ?
这是C的
  1. /********************************************************************8 i! n3 k; b+ C+ C7 m- ~
  2. *    File: DOS4G.H                                                  *
    : s2 K0 S4 P" T" P
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    ; x2 p* Q1 p  e2 s2 N& {
  4. *                                                                   *) c2 s3 p$ ^# f% A; Y1 ~
  5. *    ========================Title===============================   *0 x# T; C1 y% a& [/ C! R
  6. *        这个函数是让系统进入DOS 4G模式                             *
    * G: u1 B" Z/ Y
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *6 b; G( R! p5 u
  8. *                                                                   *
    : c0 ?; @/ w# q; y1 k' A
  9. *       使用: openA20(); set4gb();                                  *
    . N& a; U+ J4 N7 C* E
  10. *                                                                   *) B' h& e8 d: ^2 o. |5 ~
  11. *   ===========================History==========================    ** t8 P; k4 T, t' e: ?
  12. *    author: bini                                                   *
    2 z7 m! W& A% T) e: d
  13. *      date: 2004-11-30  Frist version.                             *
    8 l: R1 f2 m1 [& a: x- t
  14. ********************************************************************/
    ! s4 T2 V0 r" V7 Z" w' r
  15. " F8 r+ C$ Z4 A6 |) o
  16. #include <conio.h>
    2 ~# J6 J# g" q; ^% B
  17. #pragma inline- P. n- ?  L) h! _1 P/ C

  18. / b! [' H" c4 w' h" y, i( T
  19. /***********************************************
    1 M" j/ R* p* L' |1 R
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    5 n6 V, r, I" |  |- u. J
  21. *    第二个为一个数据段,没有代码段。           *
    3 y7 i' H! h0 q" E7 j1 V. k
  22. ***********************************************/
    3 O: z8 h; i" {  u) m0 l7 M  N
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/) p' Y+ R' y) m/ p
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    $ x  Q$ l  e# r$ r$ |' m, N
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF ) R' j- W" A/ @* T; u0 v: f
  26.                                       */
    ; ]( N$ e6 z& U* k' S) y1 g
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )4 v' @1 z( S, o/ O. C
  28.                                          最高字节为 base( bit 24~31 )  m8 W% U0 L7 T/ X+ y, A! w
  29.                                          
    0 T7 j& f1 B, d# a, m
  30.                                          属性Attrib = 0x8F92  O4 a' U7 X5 @2 O' f
  31.                                          
    . Z, u7 G1 W/ z2 N
  32.                                              属性位Hibyte低四位为 / A1 `4 ?" d( V: A3 n: l) u
  33.                                                  Limit( 16~19 )=F
    ) n! {' i5 ~5 {" b' w
  34.                                              属性位Hibyte bit7 为粒度0 b& f5 |# f/ S5 |  K) {) N- U' }
  35.                                                  (值1=4KB粒度)
    " t0 Y, C9 f) O. I
  36.                                                  8F & 0x80 = 1! Q* F( G* R( D  Y3 b! }, R: \
  37.                                                  4 J3 ^' M' F  G  J: j1 E
  38.                                              属性位Lowbyte低四位为段类型,值=24 _' `) e' k5 T) b
  39.                                                  表示为可读/写段0 U3 L, ~* [# F; w/ n, t
  40.                                              属性位Hibyte高四位=9,bit3=1表示:7 s* N- b# Z- d5 T4 p
  41.                                                  描述符对地址转换是有效的。3 e6 P" X% M/ M4 K: l
  42.                                                  bit0=1表示为:' M. l* M$ p$ r
  43.                                                  系统段描述符。而不是门描述符。: Y5 r" ^  y: Z( ?3 h  m2 V. T
  44.                                              $ j! M6 z( D1 m
  45.                                          */
    : q8 B( j& N3 e( g, @- e

  46. $ N" X, I3 F# O" B
  47. /****************************************
    $ g3 ]9 P) F0 i+ u' b1 Y- \' e9 k. {
  48. *    GDTR寄存器, 48bit=6bytes            *
    / Z+ s& C$ I+ H# M  ~7 c$ M1 R
  49. *    +-------------------------------+   *
    ' ?1 l6 F! N8 U5 @1 W( Q* r  M
  50. *    |   32bit基地址       |16bit界限|   *" R/ f: S9 I% O" t/ @, \0 `) W* w. B
  51. *    +-------------------------------+   *
    * G& F' C( Z2 o
  52. ****************************************/
      f9 r$ r+ m: T( c7 v; L* |
  53. unsigned char GDT_Addr[6]={0};- F! U6 w! M. e8 v
  54. ( G9 @) J+ O) G5 N$ I; \) [) Z
  55. /****************
    ; A- `9 i) r7 \+ X. r8 B1 B7 U
  56. *    打开A20门    *- P; m& f/ U6 a/ n- s: e8 a
  57. ****************/7 [/ r4 V( X8 h4 b$ k
  58. void openA20(void); ~( S* S+ N! p; {# I3 c
  59. {
    + x& z) i* X( R: V
  60.     asm{
    ) D" [8 c6 V7 {$ G- z& q  P
  61.         pusha" M- x/ U: {$ b0 n2 ~: O! n) s; Y3 ]
  62.         in         al, 92H- {( U* R2 z: z/ p* }% N
  63.         or         al, 0x028 G, ^' z2 g% N$ P! a
  64.         out        0x92, al
    2 Z5 K/ Z  g% e' V' k' c
  65.         out        0xed, al
    ! d- l: U( H* e& }8 ?% |3 W) s/ K- H
  66.         popa
    : E  F& }/ x" k
  67.     }
    ; T3 I% r) m5 R& [! m
  68. }
    ! C' E# y1 ?" G( R& B  f; s
  69. , \& y/ x" R+ J+ i4 Y" w) U. p2 f
  70. /***********************************************
    & p( \& S3 [, h4 w! G7 K, n
  71. *    函数功能:进入DOS4G                       *
    2 Q, U; S9 q! c  C* Q5 b% B
  72. *    ====================                      *
      a1 N# E9 t- p, Q6 X
  73. *                                              *
    3 w. c5 Y" T* }6 B/ ?0 i" J- u
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
      S% z! ~6 [, L  S
  75. *   如:                                       *9 k# k5 `" E, l7 g4 F, A2 X
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *& G0 K; r3 r% k2 A
  77. *       表示为 2个GTD                          *. @' ^& e6 k- J/ @% c
  78. *                                              *( N1 f$ `+ x6 R( t6 G. d
  79. *    选择子为所在描述符内的字节偏移。          *
    8 i) F+ ?% F5 c' G' a2 T# d; ]; S
  80. *                                              *% c& r+ n$ A4 a# W  x- y. A$ ~
  81. ***********************************************/$ K6 Q3 S! y2 M4 l6 q  [. {( s
  82. void set4gb(void)2 S0 t  s& ~' ?; Y9 N3 C
  83. {
    : @* r6 A) W( u5 H! v
  84.     asm{- ?$ t, |( g! [4 \0 I2 e
  85.         cli
    8 S, T, [) {9 t" K1 o
  86.         /****************************************/ n) K$ N5 c* ^0 R
  87.         *    GDTR寄存器                          *
    * J5 @5 v7 y2 V& S! h/ `  t
  88.         *    +-------------------------------+   *3 y% A1 ?/ s. e
  89.         *    |   32bit基地址       |16bit界限|   *
    " ^  @. |5 A' Z  e- E) U
  90.         *    +-------------------------------+   *
    ) i3 B! [. X0 {
  91.         *****************************************/
    0 R5 {. \; g) n* ^' p$ O
  92.         /*********************3 y6 T% t  U, }
  93.         *        得出段界限       *
    ) G" Q* i; Z& x3 q9 x
  94.         *********************/
    7 w7 B0 z  ?8 h* t. l
  95.         mov        word ptr GDT_Addr[0], (2*8-1);: L$ a* J* ~# N$ K) {* q1 `- k
  96.         /********************************************
    2 _6 @) h+ |* H5 N: D* _
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    ( E2 Y, h; V: w4 q1 f
  98.         ********************************************/
    , I! j2 y* T1 L8 Q( S3 g) b1 Z
  99.         mov        eax, ds
    $ _2 R8 ~5 A( Y" g$ m
  100.         shl        eax, 4' b' j! f& C; ?, @' V7 u/ Y1 X
  101.         xor        ebx, ebx
    $ Z, G7 O( g3 W  y" D- V
  102.         mov        bx, offset GDT_def4 n5 |2 p+ {1 P4 Q- X" J  @4 Q7 O
  103.         add        eax, ebx2 A0 t) y7 [' [3 c1 K( s6 j/ W
  104.         mov        dword ptr GDT_Addr[2], eax$ e4 B8 L! J" Q- G( o0 Q, |! t- `
  105.         lgdt       fword ptr GDT_Addr* M2 k+ g5 B" C* u" o
  106.         /********************3 I+ M4 e6 |( k8 ?0 C
  107.         *   选择子偏移      *
    * _% ^8 E0 @) V# u6 F! H
  108.         ********************/- m) ?% X. W: n, H8 N
  109.         mov        bx, 8
    ; Q' ^+ @- O0 V; Y3 C
  110.         mov        eax, cr0
    " a; S7 R$ m) Q' t5 H+ c/ e
  111.         or         al, 1
    ) V9 p* b( X; |
  112.         /**********************3 g: L- b' d3 I8 b: A; K% R3 Z
  113.         *     进入保护模式    *
    2 x( h; g( c7 Q/ k
  114.         **********************/; k; a0 E' Y+ l( v0 q( o9 T
  115.         mov        cr0, eax1 Q) N6 \/ S% O4 v0 q
  116.         jmp        pMod
    # a5 `# k( G$ L' @- _4 ^
  117.     }1 `( y- E. s9 J8 X! r& f' f
  118.   \( N5 w+ ^6 \# t+ J* P
  119.     pMod: asm{- D# S8 F4 P; |7 I1 A8 K
  120.            /************************************************************) l# H0 y% Y* a4 j9 `# j4 p
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    , Q- D+ v" ?+ y* K) E# G! d
  122.            ************************************************************/
    5 ^5 R: h' A- r
  123.         mov        fs, bx
    9 W9 o7 L5 Y* c0 V
  124.         mov        gs, bx8 E4 U: \3 j! A# U) U" P
  125.         and        al, 0x0FE9 p+ ^2 C, B5 t# g
  126.         /******************
    - @' Z  f3 o% Y8 O1 S- r- F- y
  127.         * 进入实模式      *6 `# [( Q  G$ d" K: H9 R
  128.         ******************/
    1 L: w7 G/ E6 }2 A0 V0 Y" ?
  129.         mov        cr0, eax+ R* w5 s7 V9 v4 I9 f2 [& d
  130.         jmp        rMod) H4 d, i1 J) b. C0 U  ^+ j
  131.        }' P, [4 R  H- C* j, y+ v/ N/ O

  132. & T2 A/ o. {& R; p. G$ E
  133.     rMod: asm{6 I+ f8 M: s7 r5 w. m2 B0 v
  134.         /* ******************************************************************
    8 o; q3 I2 P9 t* c7 h
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    0 D. V* ?2 H* j8 T
  136.         ********************************************************************/, b' ^+ i" J8 E+ ^
  137.         mov        ax, 0+ u6 ?6 O* @7 s4 d! }$ N% L
  138.         mov        fs, ax
    8 k5 c# P. m3 ]( Z6 {( G9 k/ ^
  139.         mov        gs, ax  d7 U; I  B" J! J
  140.         sti/ T' @: z6 @* [
  141.     }; @$ C, U* y* j' }) o# Q
  142. }
复制代码
这是asm的
  1. ;/********************************************************************/ O5 z& C- X8 w6 z4 o5 v
  2. ;*    File: DOS4G.asm                                                *5 E9 a4 `! F7 ]" E
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *+ L4 @0 x3 y+ m' p* [
  4. ;*                                                                   *
    7 Y: a: f# k" U* A) W$ M0 T
  5. ;*    ========================Title===============================   *
      R9 n; G4 I/ e) U5 u9 J: |1 |0 ^
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    7 B- X% m' ]4 e  j
  7. ;*                                                                   *
    ; {; Q: ^1 b, _( d2 C" c$ \+ u
  8. ;*   ===========================History==========================    *+ Y4 D/ J* [1 |5 a  ~
  9. ;*    author: bini                                                   *  C+ q# r: r  u; F3 g
  10. ;*      date: 2008-10-08  Frist version.                             *1 ]2 i! T% E  O9 `7 Z
  11. ;********************************************************************/ / g- U+ u' n5 V
  12. .model small
    " ^- V  r, w5 T- u/ R/ T
  13. .586p" X; H& ]/ K/ `+ I

  14. ( Z) T+ T- U# V# _
  15. DSEG  SEGMENT   USE16                 ;16位数据段9 `* H) h8 G. e3 P

  16. ) J1 C* G+ r4 s% o6 O
  17. DESC            STRUC( q) _7 X, Q8 l6 I
  18.         LimitL          DW      0 ;段界限(BIT0-15)6 j7 \& c& m' d, X6 o7 S( {
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    ) V% c0 V( f8 z+ w1 _! Y8 s& w6 D
  20.         BaseM           DB      0 ;段基地址(BIT16-23)! C* m* x8 J( {4 R' K5 p
  21.         Attributes      DB      0 ;段属性% N# U- O! |0 K" e1 j. O
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    9 |2 ~4 @8 ]  D* l4 Q4 S" }) S
  23.         BaseH           DB      0 ;段基地址(BIT24-31)+ _5 f  S3 B5 v" |* a
  24. DESC            ENDS
    . d9 Z* W& h0 b1 I
  25. + B/ x& x% F0 P- R8 q9 u6 ^0 f  R& Q: z
  26. PDesc           STRUC5 a# p7 s6 U* [# K# A5 I
  27.         Limit           DW      0 ;16位界限. i' M# U' G- t9 ?# P
  28.         Base            DD      0 ;32位基地址
    9 G- m3 c. |/ _/ ~9 |" M9 \& I: @
  29. PDesc           ENDS; z' l2 a1 M7 A8 f" j6 P

  30. # @% _9 W4 l# ]# h9 j* d' g/ X
  31. GDT_def         Label   Fword
    ; u& G8 x0 ^/ J  S1 Q* d
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    1 N( _/ h9 r% l  z
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>0 |: L7 u" L9 `% U

  34. 8 @$ ?! z$ t) p
  35. GDT_Addr        PDesc   <$-GDT_def-1, >, n5 T3 L( O9 u  [+ Y
  36. DSEG            ENDS                          ;数据段定义结束. F; g/ z$ A/ A6 o2 \0 n, O, g

  37. 7 w. ^% B2 B1 p4 J4 p% D8 G4 s9 b: r
  38. CSEG            SEGMENT USE16                 ;16位代码段
    : r, s1 A3 j2 c) v+ v6 h
  39.                 ASSUME  CS:CSEG,DS:DSEG
    1 k/ b9 X! N# r6 `& G
  40. .Startup
    ! Y% h" m+ T1 G0 X; M
  41.         call      Set4gb
    9 J. H3 N' V: w& B
  42. ;1 F) d, [/ J% |7 n! ]
  43. ;       fs, gs即能访问4GB空间1 \# y" ~6 C; j0 w: W- a, r
  44. ;       write your code in here.
    - c0 D1 }- B+ M
  45. ;
    $ e, z6 _3 j+ a" N( n- H" y
  46.         .exit- u+ I" z2 F! V- A8 v
  47.         6 v! a* N8 _% s8 d" F' \
  48. Set4gb          PROC      NEAR$ A5 r" y1 T# ]0 ~
  49.         in        al, 92h7 g1 U2 Q2 O; N7 U7 D) |  P1 f8 W
  50.         or        al, 002
    5 T" f, x: S1 n; L* c0 [
  51.         out       092h, al
    & c/ i9 o5 h7 t2 P& A
  52.         out       0edh, al  @" v9 Z3 `' J# k  L" w7 |

  53. 2 }) c% p. F- P, U" m
  54.         cli
    7 ?6 Z% o( x! I; _2 ^
  55. ! C0 x  x, G. F0 F2 {- _: U8 B8 `
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    4 t- ~9 q5 A" _, @

  57. 4 [' c, ?$ A& u1 ]% l  ^; ?
  58.         mov       eax, ds
      w6 ?) t5 c2 n/ |1 ^/ y7 q) q- Z
  59.         shl       eax, 49 B8 P4 w0 }! d+ j& E; E" D/ X
  60.         xor       ebx, ebx8 B; l: m+ f# y& v$ H+ a0 d
  61.         mov       bx, offset GDT_def+ y) x$ I( D0 Q7 U
  62.         add       eax, ebx
    2 v( X. {  C/ ~- _/ G8 _
  63.         mov       dword ptr GDT_Addr.Base, eax3 T6 s( N" D  X  z, i& E7 x
  64.         lgdt      fword ptr GDT_Addr
    + \' b) u: u3 w1 r0 r/ L7 l: {

  65. 2 d+ Y9 M  K8 t( L  J; q1 f+ M
  66.         mov       bx, 8
    5 ?& L5 _% x% X' q7 D
  67.         mov       eax, cr0
    8 ]" S4 j! r3 Y9 f
  68.         or        al, 1
    9 i: P' x! F2 t+ t% U+ C0 F  E
  69.         mov       cr0, eax
    . x# G0 e6 e: j+ U
  70. / K/ M: T" E& N. _, q* T8 x
  71.         jmp       pMod
    1 q5 B3 i2 z: G+ ~6 t9 ]4 r5 r
  72.     pMod:, E  `3 p, [6 q
  73. , f2 \6 R9 _$ i% S
  74.         mov       fs, bx
    % R+ l' \. }. F6 i) s- _0 P
  75.         mov       gs, bx5 N: q# ]9 x' P
  76.         and       al, 0FEh
    ! T0 Y5 K7 ~" X, G& c+ C% _4 ?
  77.         mov       cr0, eax
    4 O9 f( a+ v' y+ f/ L* k) }
  78.         & P  C' n: ?. A: r9 q
  79.         jmp       rMod7 h' F& Z1 j2 F8 ]* U: r  w
  80.     rMod:& w2 Q: E* {& M( P( \2 q4 k% Q
  81. 7 D; L, _/ [0 a! `/ b
  82.         mov       ax, 0
    1 }. p' t! j7 \5 b& S
  83.         mov       fs, ax! J9 p7 {6 `7 p" g! w
  84.         mov       gs, ax
    ( l; E: a* V: [, s- N" o8 _, k3 l" u, O
  85.         
    0 W+ B; c: [. B9 q
  86.         ; 在2M的位置测试写一下数据
    - G, [4 H+ g- G* b  m
  87.         mov       esi, 200000h- ^. P% a6 E& S/ D3 e& L
  88.         mov       dword ptr fs:[esi], 055aa55aah5 e% P$ v6 [2 M, w8 W6 R
  89.         ; 用RU去看看200000h的位置是否是此数据....4 L7 @' I* R1 p3 ^5 m: j: `
  90. 8 Y) ^. j  l  p+ a9 ^
  91.         sti
    ! e( u7 M: v. B2 D4 c# ]
  92.         ret
    + ]' Z3 ^1 Z' R
  93. Set4gb  ENDP' K- l7 a! S+ u+ @# H
  94.        6 E0 q. O8 g1 r; K" M, d% s. r
  95. CSEG           ENDS                              ;代码段定义结束9 `& y6 @, `6 t) Q
  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, n1 ^" O9 v) I7 ]2 |5 U
/ u1 r0 l2 q& D4 M2 G& `( F9 i8 }
option->compiler->code generation中的option选中, [X] compile via assembler
) J1 ^7 `% O2 ^3 s
4 j1 a5 i3 P1 O$ a[ 本帖最后由 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;! W0 d8 \5 G1 u- }2 K- E6 |3 n
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;+ W8 K/ ]+ t/ A7 S+ `' T+ r

+ Z: F; j) ^# {; }5 a8 s, l% eGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;+ T& v$ A$ c$ i
替换如下,) V' [9 b5 y, [
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>2 b( n/ `6 ]# G, K% \% f) {$ [5 v
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
. H0 \! P$ O  Y6 V  b' C! U4 g' K2 J$ r. d5 @6 ]4 I
GDT_Addr        PDesc   <$-GDT_def-1, >4 Z, k. [: K1 D- r+ N
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
$ G/ N+ R( L/ ~9 B( r! ~2 uoption->compiler->advanced code generation中的instruction set选 80386
* G" S1 p6 ]( Y; `4 S
5 y% N, Y* q0 a* ~4 G9 toption->compiler->code generation中的option选中, [X] compile via assembler
0 {( f- J+ M5 a7 |- N* Q
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 & d- G( A" a/ [/ c; n* m
) P2 }: y" T6 |# q* i
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

) L+ T# T: ~3 t  r& p. T9 |9 x6 M& A( q5 S9 s9 U: ?# [% i# a, e
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-20 09:19 , Processed in 0.779181 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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