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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。3 o4 ^2 |4 V8 Z! m3 k# o; \- e

( w, z# W$ [3 {3 {( R这是C的
  1. /********************************************************************
    9 z% y% c+ C, W/ {
  2. *    File: DOS4G.H                                                  *4 I  r- Q$ e& ~! ~9 h- R
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *5 h# y! X$ v& N. B- s
  4. *                                                                   *6 _# N! ~1 t; q. a0 C. B
  5. *    ========================Title===============================   *
      Q# F, W3 P6 \/ m8 r
  6. *        这个函数是让系统进入DOS 4G模式                             *2 Q& }' m( O6 |( g
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *8 J5 _1 `1 }4 ~1 ^
  8. *                                                                   *% M' l1 U: W2 [! J2 _1 W, \6 p
  9. *       使用: openA20(); set4gb();                                  *3 K' q; S+ p' x2 M$ X! [
  10. *                                                                   *" D  e" `( {- P$ t0 g% I9 }7 G' ~
  11. *   ===========================History==========================    *
    4 N) |5 w, A' ]8 L. m2 U
  12. *    author: bini                                                   *
    4 D, h; E5 h3 a# [$ R  a7 ]
  13. *      date: 2004-11-30  Frist version.                             *
    : u& G$ i, S* a' W  i/ S
  14. ********************************************************************/, ]) O1 t2 w+ [# I
  15. + {' s/ c! y8 @' k
  16. #include <conio.h>
    , I* C% ^, n/ R/ R4 K8 s# @
  17. #pragma inline+ t0 [) l/ r; X  R4 s

  18.   D# J7 N" D; J* {
  19. /***********************************************- o9 k3 r5 V% S
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    # Q' D* \7 E' f" d+ N
  21. *    第二个为一个数据段,没有代码段。           *
    . P, P: |& X% I1 G4 L( c8 f2 j
  22. ***********************************************/
    8 l! A. a) M2 H
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
      g. ~( I% l! r$ x9 i5 A9 Y
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, 8 O2 g  \. s: P; d- X) |
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    0 ?7 L& ^* x5 }7 \5 d' R* ^
  26.                                       */# Z9 t1 g4 s: [! c6 n$ x
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )7 f" u2 p- j* P  O. E6 r) h
  28.                                          最高字节为 base( bit 24~31 )( k# A: o' C6 H) H* ]9 R! M
  29.                                          
    7 g/ w% v) n3 B: Q1 w9 i
  30.                                          属性Attrib = 0x8F924 C) L$ y% E; v0 h/ B3 n8 @
  31.                                          4 M8 L9 _5 E. g! ^( D' Z$ w
  32.                                              属性位Hibyte低四位为 3 \0 r4 o, X. j& o$ L
  33.                                                  Limit( 16~19 )=F
    & P" Y- K* A. f3 j% r1 X
  34.                                              属性位Hibyte bit7 为粒度9 s3 j6 k: G) F' U5 B; R) A
  35.                                                  (值1=4KB粒度)( I; A4 d1 v6 {4 C
  36.                                                  8F & 0x80 = 17 V( |& P5 t$ Q9 q' E0 `8 r3 M
  37.                                                 
    ' r( N  W0 s/ h3 G  G$ j
  38.                                              属性位Lowbyte低四位为段类型,值=29 a3 C) n% ^' j
  39.                                                  表示为可读/写段
    ' x5 {4 u2 L# o% _+ B4 w% a
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
      s7 x  Q# a; v( n) w1 n
  41.                                                  描述符对地址转换是有效的。( w5 ]  U( L" b  N2 V
  42.                                                  bit0=1表示为:& c2 a6 F* n& |/ j0 I: `% W# ^/ U
  43.                                                  系统段描述符。而不是门描述符。8 E) D! W  J( h- k/ @
  44.                                              1 v9 a7 w: z0 G3 `$ x. s- z( y* ~
  45.                                          */# U6 Y4 J! m0 w1 N' |& R# `% F' W

  46. 8 u6 [) u1 P* X1 C! }: w
  47. /****************************************+ F; j# K% D' \% w( a# T
  48. *    GDTR寄存器, 48bit=6bytes            *4 v+ m* z4 O3 _& z* @4 _
  49. *    +-------------------------------+   *
    ' ~- E: N" R0 m
  50. *    |   32bit基地址       |16bit界限|   *
    " Y7 c0 _; y& u7 q0 g* _! v+ `8 S3 W0 p
  51. *    +-------------------------------+   *
    * W" L: ?+ I3 v' c" o+ x9 N3 Q. V" A
  52. ****************************************/, b0 q& k/ G8 V; z2 [
  53. unsigned char GDT_Addr[6]={0};
    ( n4 l4 ?8 h8 J* L& A( W3 w" ?

  54. ' |6 h6 \( D& x7 C
  55. /****************, E1 l/ Z" Y, G, A; c8 F; z
  56. *    打开A20门    *- F6 i8 N* K4 u& i: `: p% E/ e8 V
  57. ****************/
    ( C' x/ m9 X+ Y# ?: n6 X4 L
  58. void openA20(void)
      b/ o8 n" F- R$ @2 q0 C4 Z# ~/ {
  59. {
    & U' @6 m. H# s( q. K/ x
  60.     asm{3 h2 g0 c, [+ Z3 T& D8 x
  61.         pusha; R$ n" v" n7 z, s) R' t' X: s! G
  62.         in         al, 92H7 J5 W4 @9 U( e' y) p" f' I2 s
  63.         or         al, 0x026 X$ E8 u; }) u2 w, I$ Z: s0 ~
  64.         out        0x92, al
    ! E9 x: M5 `, d+ I
  65.         out        0xed, al) n4 I: C2 y: c4 z/ h+ k
  66.         popa4 `/ w8 @' \9 \( t) U; Z1 t! i
  67.     }0 P- t7 r2 \0 T% x5 Y
  68. }4 u' W) S: q7 e6 X8 M2 B+ j) H0 I7 R

  69. 8 \( l" i, N- A/ h* g! d
  70. /***********************************************$ k8 n" M) V; u* T
  71. *    函数功能:进入DOS4G                       *
    ! V: |# Z' ~5 G" C: v
  72. *    ====================                      *, o& t& ~& c  `* \: j
  73. *                                              ** y; g: W. x6 }
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    8 V( P4 ?3 i* f; Z1 |3 ]1 V* ]: ^
  75. *   如:                                       *
    - j, Y/ W% u  G4 ~
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    7 I+ }) [: i: X) ?, X
  77. *       表示为 2个GTD                          *0 [: f# S2 H" f) J& s+ _
  78. *                                              *
      o/ W& R/ G* p( ?
  79. *    选择子为所在描述符内的字节偏移。          *! s2 c2 Z2 v2 F# W
  80. *                                              *
    % L/ d$ ~- c- {
  81. ***********************************************/) t& e6 w; Q. g9 ^2 v
  82. void set4gb(void)
    " U7 q* T1 V$ v! e( a& c
  83. {' _7 h+ m# e  v1 }4 `
  84.     asm{
    ) O+ R3 Q+ _& w2 h
  85.         cli+ g, `. ]+ {& H. W7 b" n' o4 N+ ~
  86.         /****************************************
    $ ^3 I$ ?2 O! V, R# H1 w) z
  87.         *    GDTR寄存器                          *( E& d5 x4 I  h
  88.         *    +-------------------------------+   *
    / i# Q6 |1 W, X! [* r: |
  89.         *    |   32bit基地址       |16bit界限|   *. j1 s5 S! T1 e" V
  90.         *    +-------------------------------+   *
    * j' j1 g$ B" N1 f/ ^/ s. w; \: g8 B0 ~
  91.         *****************************************/
    + {" i; z. m. M! `
  92.         /*********************; t+ ?0 Q# A: P( [! A$ _3 ^' T9 \
  93.         *        得出段界限       *; \/ K. r  @3 ?& m1 }. U% s
  94.         *********************/
    1 u# R) l, ^$ @: E; Y) S
  95.         mov        word ptr GDT_Addr[0], (2*8-1);5 t. J5 v$ k1 V) ?! l' r  N+ j3 e3 X, }
  96.         /********************************************  H& j5 J. _9 D7 ^- K& {9 Z5 z
  97.         *    计算GDT表的32位基地址,存入GDTR        *8 F9 m/ Y4 ]  o  B. m
  98.         ********************************************/
    4 h( l2 k, o! p  h; N# t2 N
  99.         mov        eax, ds0 \' e2 H, Y1 P' q
  100.         shl        eax, 4
    7 ]6 A5 W* r. s; X+ I* K
  101.         xor        ebx, ebx8 Y# l/ o) [1 t, ]8 D; i6 B; E
  102.         mov        bx, offset GDT_def
    + f9 Q" L5 w$ O- M: F4 j5 I) q
  103.         add        eax, ebx
    ) T5 n8 R, q, x% a% f
  104.         mov        dword ptr GDT_Addr[2], eax/ L: A6 y6 G8 x4 ]$ {
  105.         lgdt       fword ptr GDT_Addr, N- g7 q5 Z$ A3 `( l  j( C' Q
  106.         /********************5 g6 ?  @6 Q1 v  i
  107.         *   选择子偏移      *
    $ r, k5 X# a! z, n8 l
  108.         ********************/7 w4 t6 ?" [  k) m3 O
  109.         mov        bx, 85 l# b3 }' X0 d& w0 G( \
  110.         mov        eax, cr0: L. b7 u/ [+ n5 g& Z
  111.         or         al, 1: A$ v  q# X7 f! \* o) Q
  112.         /**********************
    1 F1 o; P9 n% g) @9 J( k( j  ~, _
  113.         *     进入保护模式    *
    ) j" Z$ G$ J) q( q- k" n- L
  114.         **********************/
    : y0 u- L. K$ s8 Y1 B
  115.         mov        cr0, eax" `6 P- R4 u) W0 m8 C2 @0 d- h
  116.         jmp        pMod
    & ?5 x8 t5 x0 o- J2 n: B+ k/ l, E
  117.     }
    4 K& `- Y* E; d9 N  ]
  118. - B$ ]3 R' ]! ~  M- C2 q/ W
  119.     pMod: asm{' v7 o! d3 R( p8 L0 g
  120.            /************************************************************
    & V* [% ^# s9 p) V" I; @" a4 x5 S
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *. L9 O: t0 ]& Q& Y4 ~$ J
  122.            ************************************************************/7 P/ d& l7 _" }/ f
  123.         mov        fs, bx- H: X% g( r8 G- F0 C# e
  124.         mov        gs, bx
    " M+ @9 L8 m! c- r4 G3 P
  125.         and        al, 0x0FE
    0 K# h5 |: f6 p# y
  126.         /******************
    & a$ |$ R  {  G9 h/ i# H- T* v$ l& q
  127.         * 进入实模式      *$ E# ~% |' U( A% Q
  128.         ******************/
    % N: k" I! B+ ~$ \% l+ W6 Y
  129.         mov        cr0, eax
    , H7 i2 f6 n2 |% L& c3 ~% d
  130.         jmp        rMod
    ( \+ _1 i7 `9 D9 d, y
  131.        }
    ; B! p, [' p9 K, t. u1 X0 E" W

  132. 5 [) Q& ]- u: k
  133.     rMod: asm{. p5 F7 p* \8 U; u& J! }4 k) Y
  134.         /* ******************************************************************( Z* j, e- X" P" G
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *7 x/ D3 r  F3 W; r# E
  136.         ********************************************************************/  _- Q% Y2 P: Z
  137.         mov        ax, 0
    ; S1 \/ E) C! q
  138.         mov        fs, ax- t0 Z7 N" l! t4 w
  139.         mov        gs, ax, X& U2 {3 B! J: N
  140.         sti' i/ q8 V+ C0 D% }* H( _2 T
  141.     }
    $ O, t$ i& G/ H$ e; w
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    : P, s( m( h  q6 j
  2. ;*    File: DOS4G.asm                                                *
    0 B) n8 y3 e" \5 S; T1 K
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *  ]5 I, @- K5 g& x$ s; |0 d, H
  4. ;*                                                                   *
    : K5 s$ X" i# y0 p" r
  5. ;*    ========================Title===============================   *5 U0 i; F) \, P# Z$ i* g2 F
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *6 u+ v" c& C1 n9 \8 r# t/ T: ^( j
  7. ;*                                                                   *. x: t$ a% s5 ^% P/ n% O$ s* G
  8. ;*   ===========================History==========================    *
      N# K; U$ ~3 J  N: y/ i& D- p
  9. ;*    author: bini                                                   *
    % R! b# [1 ^0 O
  10. ;*      date: 2008-10-08  Frist version.                             *8 ]& A; x) P7 n- D3 W
  11. ;********************************************************************/ ' f7 G9 k0 F  l0 ?* U. q' t$ s! Y- L
  12. .model small' ^+ ^, g0 f; r3 {
  13. .586p& c% |* w# {* c
  14.   H- O4 m( A1 ]
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    2 h6 u4 N$ L* b; H$ v3 m; K
  16. . `$ g: C) p) G% q/ [) m
  17. DESC            STRUC
    + l+ a/ z# [& t  [) i! P% ~  l( O
  18.         LimitL          DW      0 ;段界限(BIT0-15)9 o( m/ g0 H! S( f* F
  19.         BaseL           DW      0 ;段基地址(BIT0-15)+ U0 J0 u( ]% u8 V( Y
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    * n, b$ O: x4 \  P( A7 c7 G
  21.         Attributes      DB      0 ;段属性
    # U  `* O9 ]* [0 t
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)/ P: C* O5 `4 M+ L! X6 n
  23.         BaseH           DB      0 ;段基地址(BIT24-31)0 T" C. o0 W' ?. n+ q
  24. DESC            ENDS
    9 \1 i7 U* C7 ?, K  b

  25.   T1 ?0 j* g  ~1 d2 Z3 u, ^
  26. PDesc           STRUC
    8 V% V% @$ r9 Y4 e
  27.         Limit           DW      0 ;16位界限
    4 L0 }6 T7 S' C  Z, k+ L
  28.         Base            DD      0 ;32位基地址4 d, F) I7 H" e6 B8 N- z4 {; t
  29. PDesc           ENDS* L6 f& I# D  m* ?2 F9 S  J* r+ M

  30. ) a8 h& R- `1 R/ ?1 C/ v
  31. GDT_def         Label   Fword
    2 R. j/ T7 F- A4 B
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>; y! H$ m+ q9 j  P( O4 A: g; x
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>( n2 D! O, e8 `3 J, @& S! p
  34. + X; E% W% p/ u( O
  35. GDT_Addr        PDesc   <$-GDT_def-1, >, D3 J: @" [# ]- T
  36. DSEG            ENDS                          ;数据段定义结束
    . [) [; M& a: F( E

  37. " r" h9 F" T# C: q* h+ h
  38. CSEG            SEGMENT USE16                 ;16位代码段$ b' t5 u& w4 e8 ]2 r/ z
  39.                 ASSUME  CS:CSEG,DS:DSEG
    0 y( I; ]1 h3 r. N7 a
  40. .Startup
    & j$ e* I) H4 y: z( _- K& R
  41.         call      Set4gb7 N7 K' g- T! S+ z5 F
  42. ;4 y4 D+ U3 z4 c6 _# j& a
  43. ;       fs, gs即能访问4GB空间
    , t/ x$ O8 B6 ^9 G0 U, G+ s
  44. ;       write your code in here.
    % u, \* C. s. ~( Q4 V  T
  45. ;
    ; }- u0 l/ U3 N1 b% l4 `. i
  46.         .exit
    9 W4 D# w7 _: }
  47.         ' R9 b& k! D' ^# Y2 I& s' M
  48. Set4gb          PROC      NEAR
    0 H$ E; g, x6 \" Q3 ?. O3 e9 g7 I
  49.         in        al, 92h
    7 \0 ^& W- {- C: M. x  N
  50.         or        al, 002- d" \5 B% n# q. L8 U. k; T5 K
  51.         out       092h, al
    * V4 `. C" g8 G8 e/ Y$ m- ^: t( R
  52.         out       0edh, al
      g6 Q: k$ _  U$ c+ r/ r
  53. : E9 _" A' e! H2 j# [3 t2 ]6 g$ t
  54.         cli
    * G8 u# ]( S, [4 O' K, o

  55. % ]2 w. E1 [/ c8 n/ _" q
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    * U- i5 f7 [% B  R+ g
  57. " G( T( G0 o: z8 o! }
  58.         mov       eax, ds
    + d- f5 O( H: s) Z; I# H
  59.         shl       eax, 4
    4 p& B) P6 {* {6 m! ^0 p
  60.         xor       ebx, ebx
    ; F3 k) R( i6 p8 b! I
  61.         mov       bx, offset GDT_def
    * X- S( L6 O6 ~8 A
  62.         add       eax, ebx
    ) W1 M* \! h' u1 G% ^
  63.         mov       dword ptr GDT_Addr.Base, eax, b  T" @! j# N& o5 M' Q
  64.         lgdt      fword ptr GDT_Addr/ _/ c: a1 m$ r8 ~2 U; ]6 T# ]

  65. ! J& l6 V8 A7 }
  66.         mov       bx, 8' }# ]9 V) W9 ]. N' O9 h$ ?. h) e
  67.         mov       eax, cr0
    % y) e" @* e3 {9 q/ e( w& |+ }
  68.         or        al, 1
    " ^- \* g; |- v4 o& y+ \# C, l
  69.         mov       cr0, eax
    6 n& @+ U  _0 Z! q: l( T1 M' X/ Z2 l# O

  70. . t5 K5 q3 I8 p4 Z: p
  71.         jmp       pMod4 c( U* f+ i5 _+ f2 M, q5 O
  72.     pMod:! v$ z' _* s- _$ K& f

  73. 7 j! F7 C5 v, W% Y
  74.         mov       fs, bx/ O0 ~2 G! g, |2 V8 k
  75.         mov       gs, bx: z& U3 D$ k+ |9 p9 z# J
  76.         and       al, 0FEh. A$ L) S  s' d/ \9 K  J1 ~
  77.         mov       cr0, eax
    8 x* _+ r7 T9 @. n7 @- L! c
  78.         : U% w6 w' G, j$ U0 [2 I
  79.         jmp       rMod
    7 G5 A' r) H9 M
  80.     rMod:6 A4 H8 O# [6 H% L9 ?1 W

  81. ; k( H# Z9 I: k2 {& K$ y* a: r, b
  82.         mov       ax, 0
    , b% v2 ^1 L; f
  83.         mov       fs, ax% M7 i: _5 i+ e' D
  84.         mov       gs, ax
    & j% ^& B2 h$ Y7 n1 T* e1 P, b$ ^& u
  85.         
    ( Y, Q7 D( Z" l. r# a
  86.         ; 在2M的位置测试写一下数据. {. n& W8 p0 r/ L; V
  87.         mov       esi, 200000h% q/ ?# O. t; p5 u
  88.         mov       dword ptr fs:[esi], 055aa55aah
    $ v- w+ ^2 q5 }% D1 J, V
  89.         ; 用RU去看看200000h的位置是否是此数据....
    : Q0 R( K( p- ~5 R' N
  90.   [/ G) p4 c( `7 T6 g& `, H
  91.         sti
    5 _0 J; ]. b$ o: N$ P
  92.         ret
    / F# }/ ]2 U/ Q8 f+ H2 {3 y
  93. Set4gb  ENDP
    % O, G" y7 w7 _4 m5 u* F
  94.        " k0 s  j, ?2 b0 S4 l; H/ y/ ]+ W+ a2 v3 O
  95. CSEG           ENDS                              ;代码段定义结束
    1 j9 f" m% N1 ^3 Q( e9 c; 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
) S: e3 B7 N' S8 S! A0 I! a3 r5 l- x
option->compiler->code generation中的option选中, [X] compile via assembler3 z$ {. d2 V) q' w1 q. ]
: ~  C+ _. Q3 S! _
[ 本帖最后由 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;
% M6 B( ?, v5 J1 Z& `2 o( XData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;0 E) F/ X, a2 z0 U( x

+ w  K9 [0 P# GGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
8 d% i5 y& g) b+ { 替换如下,
* C" V" v, s/ k( ?! T5 yNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>! X; k3 D! E! z# G
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
. ~' f. R/ D  `1 `5 o% }
6 _* A& _5 |7 m  m- o% TGDT_Addr        PDesc   <$-GDT_def-1, >+ L; V  I* Q: u( l% T; i
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
' Z( d6 H' S! O3 Woption->compiler->advanced code generation中的instruction set选 803865 g0 F$ k' ]9 D

7 C5 ~! v5 \3 P6 R' Xoption->compiler->code generation中的option选中, [X] compile via assembler
- A& i, a; @; J3 V& t* _8 m
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 7 V' u$ y* v# N& Q. T- j% ~& n

0 g4 s1 z! _8 y* ]   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
  \  E7 h# R4 q. l
2 Q: j1 [8 D0 o# F" j) z) w
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 05:40 , Processed in 0.126424 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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