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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
$ r5 n9 z) k9 v4 x. N  W* {8 m& n" q! {9 j! a
这是C的
  1. /********************************************************************# S, {8 T2 y9 K8 U5 ?" H
  2. *    File: DOS4G.H                                                  *
    % A0 F" F" I! h5 _% R5 G
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *) O* |) M4 J( E6 u! V
  4. *                                                                   *4 s" p6 h& n/ N. L
  5. *    ========================Title===============================   *
    6 A7 |4 d9 X9 c* j5 w/ o% N
  6. *        这个函数是让系统进入DOS 4G模式                             *
    ) _  Y  d( D$ K2 @) b
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *8 t/ b( V; b6 j( R+ A
  8. *                                                                   *! B( Q; A4 K& p8 L& l1 m3 W
  9. *       使用: openA20(); set4gb();                                  *
    $ i% t/ \' G- N8 v: D
  10. *                                                                   *0 o  [! G& P' e6 ~; o9 J
  11. *   ===========================History==========================    *" R1 D: J( o1 w2 y* y. a
  12. *    author: bini                                                   *7 |7 H) ~; t$ D
  13. *      date: 2004-11-30  Frist version.                             *- W4 T" ]& _% ~5 e" P
  14. ********************************************************************/
    / V2 A( K: c) ^+ ~
  15. # @! F# r; a; r/ B' }
  16. #include <conio.h>* `- i8 J% Q# a2 s
  17. #pragma inline, a/ w' N4 c/ t+ G5 v: H
  18. 4 y$ o" o6 ^+ }
  19. /***********************************************# \# @- ^$ E) [
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    ; c3 E. b- b5 @7 Y# f
  21. *    第二个为一个数据段,没有代码段。           *: ^$ X7 [: G  T/ w
  22. ***********************************************/
    / c4 s( P0 N1 i6 o" y, l
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/0 }% W7 ~7 w3 T7 V5 ?
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    + j9 d' m. L6 f) l2 S$ m! Y
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF % v2 p. a3 f: T, H3 ^3 L0 O+ i0 K$ F% a
  26.                                       */9 j- e4 D; n. J* g
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )
    - u$ {+ l6 d7 \' m5 n; j. i& a7 @. \
  28.                                          最高字节为 base( bit 24~31 )0 q; u" P( S9 L3 ?' x
  29.                                          1 J' T+ W& ?# z) e
  30.                                          属性Attrib = 0x8F925 c8 N; I# B* z" A8 `
  31.                                          ( Z/ ]" `3 k; e3 D. a* }3 F# w' w  Q$ i
  32.                                              属性位Hibyte低四位为 6 V; P* ]- j+ z, c4 T0 K
  33.                                                  Limit( 16~19 )=F* x0 a) J2 r" d! u# r. G" y
  34.                                              属性位Hibyte bit7 为粒度& p$ w* W0 L4 a- D4 f: n
  35.                                                  (值1=4KB粒度)
    8 `" ]# Z  e7 c7 L
  36.                                                  8F & 0x80 = 1
    # `( m/ e8 P. `) N" o* K
  37.                                                  4 U: v# I9 D% w+ S6 M9 n
  38.                                              属性位Lowbyte低四位为段类型,值=2
    ; y/ m% y/ W0 a7 z0 s, N$ x9 T/ k
  39.                                                  表示为可读/写段% h5 G% H& p2 m  @" L) \# b
  40.                                              属性位Hibyte高四位=9,bit3=1表示:! N$ W1 f5 L% B5 }" M# S
  41.                                                  描述符对地址转换是有效的。6 l! ~1 h# o" [3 B* s! {
  42.                                                  bit0=1表示为:
    # M( f! m1 D* G/ U1 W
  43.                                                  系统段描述符。而不是门描述符。
      n, g$ w2 T2 `. w; Z
  44.                                              
    1 h5 A( `' ~, Q" f+ [
  45.                                          */
    9 s4 E/ S- L0 F! x
  46. + S) \' B: a& h. H4 ]
  47. /****************************************
    3 p, L% Z. r' h$ |; T
  48. *    GDTR寄存器, 48bit=6bytes            *
    & B3 d& |8 Z7 ^$ Q- b' y
  49. *    +-------------------------------+   *! v. y+ X9 ~3 c2 j
  50. *    |   32bit基地址       |16bit界限|   *
      X) q/ q3 I5 Y1 n5 k; n  E
  51. *    +-------------------------------+   *
    ; w7 T" l3 n, z9 o- m+ E3 w: B2 J
  52. ****************************************/6 W2 j$ F: C1 l1 x, H
  53. unsigned char GDT_Addr[6]={0};
    9 I% \8 i0 Z7 u1 S  j5 H$ L
  54. & L. u3 v( v* R, _. H
  55. /****************( a+ C- M0 E5 s0 ~$ `- U% N
  56. *    打开A20门    *
    $ K5 I2 R9 u, D9 p
  57. ****************/
    8 d1 g, x6 t, b
  58. void openA20(void)
    3 H/ ]# v2 r& t- m+ y7 k6 G7 k0 ~
  59. {
    ) u7 V! a2 m: w$ H4 @
  60.     asm{( K+ }+ k3 @1 H6 F
  61.         pusha
    + y+ x9 w, I! a* ?9 I/ P: r0 U. I
  62.         in         al, 92H
    & l  e: F5 R" r5 k! R1 v4 F9 t* G# Q
  63.         or         al, 0x02
      f1 R' o/ O) \5 o: s0 K
  64.         out        0x92, al' t1 n' ^7 @# ~/ ^2 d6 y
  65.         out        0xed, al
    ; {" G5 G4 u7 }" a0 n, F4 x' }
  66.         popa
    % L  C2 w9 k$ i) q- z* v. d0 T
  67.     }. ~0 C* j8 K  y7 @/ B
  68. }, k2 b& b. g0 C# o6 k

  69. & o" y+ {% V: ]  p& O5 T
  70. /***********************************************- p$ R7 z5 G# H9 Z" n
  71. *    函数功能:进入DOS4G                       *
    0 m. Z7 D* G3 M  m& l
  72. *    ====================                      *
    / i: L9 \0 _+ w1 U4 l8 S% O) y# A4 O
  73. *                                              *
    ! G: P) R6 |1 H
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    * X+ w+ M  l' d, b7 T' C$ q
  75. *   如:                                       *! r' {- t3 ]% S) |3 [- E& @
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    " k' s! z/ H, y) V: N# S: b
  77. *       表示为 2个GTD                          *9 k9 P" i& c4 G$ E2 z
  78. *                                              *
    5 C; Q/ ^  g8 K. O/ a' W% W" }9 S
  79. *    选择子为所在描述符内的字节偏移。          *$ [! j4 Q  H5 Q
  80. *                                              *: z, I. {8 ^1 X* X( u  P
  81. ***********************************************/
    % r; Y9 @2 r8 I6 f, }
  82. void set4gb(void)8 x6 Q) Q8 z1 p8 o) a
  83. {' ^$ K* Q3 \- J( x$ P, Q
  84.     asm{) K8 g5 i, @* k5 q* p* h  S
  85.         cli
    9 y4 ]4 J$ O4 P* w  s
  86.         /****************************************2 r. V7 T  l( ~
  87.         *    GDTR寄存器                          *
    3 L7 V. r  f; z, S( }1 D' P
  88.         *    +-------------------------------+   *3 ~/ ?6 I" D0 V# p/ p' X
  89.         *    |   32bit基地址       |16bit界限|   *
    * n  M- J' V, o5 J  w0 n2 P1 f5 w: o
  90.         *    +-------------------------------+   *
    ( p1 C+ l" s/ [  n$ Y
  91.         *****************************************/
    8 r. s  i* ~1 m' v, b+ S, o, L  v' B
  92.         /*********************
    % Y: u6 ]' g. R
  93.         *        得出段界限       *9 @+ f1 b1 y; U% X
  94.         *********************/
    3 _0 G. [8 O% r" R+ l
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    % ]- h9 m0 G# w2 o
  96.         /********************************************
    , O* i8 `7 j0 \  b& j$ G
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    # G& _6 O! V% ]0 Q: |
  98.         ********************************************/. F5 i! Y* y7 N" M; ^
  99.         mov        eax, ds/ j9 G" ]+ ]1 c% h, F% I) E
  100.         shl        eax, 4
    : X& Y- q  r) Y. f
  101.         xor        ebx, ebx
    2 F5 a7 a. P1 Z/ L  g& D! {
  102.         mov        bx, offset GDT_def: j1 ^9 h4 v, e2 Z
  103.         add        eax, ebx3 I6 X( B) t% P9 Z+ P* U' b
  104.         mov        dword ptr GDT_Addr[2], eax
    + X* x. L6 A1 f- d9 I- C1 L
  105.         lgdt       fword ptr GDT_Addr0 k9 `- [, U1 Z' T4 M& a
  106.         /********************
    : u9 W4 l1 J5 S, ?. B8 J: M
  107.         *   选择子偏移      *, m7 Q& d: B7 {, q
  108.         ********************/3 W* \7 \" D# B+ X% Y$ W, F- n7 w
  109.         mov        bx, 8
    ) ?& G$ |, I; r# T: u
  110.         mov        eax, cr04 J1 g2 m+ z1 ^4 N* k9 h
  111.         or         al, 1, z' `2 H& I) c. ~: W  M- a
  112.         /**********************
    + |' {3 h, z( R& w8 }3 _0 f. [
  113.         *     进入保护模式    *
    8 [# x+ {" F* v# N% y
  114.         **********************/7 F, i: b7 x- E- H
  115.         mov        cr0, eax
    9 i; F3 t2 N; d6 F
  116.         jmp        pMod  B2 u! D' s9 \* n/ F
  117.     }
    + w: S! _- W' K( r9 N
  118. ( X( S) a: o* B0 Z) L
  119.     pMod: asm{
    ) _* P' p' j. L' z; N' G
  120.            /************************************************************
    - U1 K4 F* t: J. S
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    ' k: d6 t  Z& v9 F* a; f" ~$ ?, _
  122.            ************************************************************/: j) C4 ?; [" P* R, [$ ~, Z: ]
  123.         mov        fs, bx
    : ~- }) Z9 z% `4 F5 }
  124.         mov        gs, bx# H- ^* E* T9 C
  125.         and        al, 0x0FE4 j. K, v; Q  q" D1 U9 L3 |5 u+ @
  126.         /******************7 l" F" x) W0 Q4 f1 O# e$ C
  127.         * 进入实模式      *
    / Y. B6 s/ R) H- }4 Z
  128.         ******************/% B1 ]( `: w  P% B1 u2 Q
  129.         mov        cr0, eax
    6 _" Y% F! O4 h1 y1 x: F
  130.         jmp        rMod
    4 w* o$ |5 H2 j8 A; f
  131.        }
    3 g" l6 `) ~7 h9 b+ T- U

  132. ) z/ h2 {1 w& h0 E  A) V
  133.     rMod: asm{
    $ K; ]! m6 j; ~  S- o& P
  134.         /* ******************************************************************1 B+ z# Z/ w( {1 Z
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *0 V  J! _' G. B7 @
  136.         ********************************************************************/
    + }+ ~0 ]9 |8 E  r5 ^6 v. P
  137.         mov        ax, 0( ^! P, t' f* Z; q9 @6 @7 m" T$ P; O. B
  138.         mov        fs, ax
    ! B& D" J# F6 ?
  139.         mov        gs, ax
    / \' |+ O3 ?, I8 t& t! n8 ~* i
  140.         sti8 E2 J* f: t- Q( a# |9 l3 a$ T( A
  141.     }
    % `1 f& r5 c; e! J" A, K  G
  142. }
复制代码
这是asm的
  1. ;/********************************************************************, D" Q9 ^5 ?% O& H* E* S2 C
  2. ;*    File: DOS4G.asm                                                *7 y1 H/ X  t7 L2 f$ t) s
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    ; U/ o( D9 k- `# `3 p( L& Y
  4. ;*                                                                   *8 Q& }& q& }2 ^0 f. F# z9 S7 ^
  5. ;*    ========================Title===============================   *
    1 t/ v/ a9 h# A( P. l/ ?, [
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    ; l, `; J: `: ~) }
  7. ;*                                                                   ** a+ w% |, O; _+ [4 J" L9 q
  8. ;*   ===========================History==========================    *
    5 v$ `. p+ M4 X6 q: W# m  _
  9. ;*    author: bini                                                   *
    9 f% i. T. n* ?2 q
  10. ;*      date: 2008-10-08  Frist version.                             *8 }; b$ L0 u" n# ~% d5 u
  11. ;********************************************************************/ 2 e8 M+ [. U- N; k3 C/ Z
  12. .model small
    " C& h# l- [4 @( m/ z3 W
  13. .586p
    ) G" J2 e& P! N+ U/ Z+ U
  14. - t) ~, m9 G. u8 `* X/ J$ d- ]7 k# \
  15. DSEG  SEGMENT   USE16                 ;16位数据段$ q" T0 g/ N* B- q
  16. 7 q" S" s2 [5 T6 U$ I# m
  17. DESC            STRUC+ h% E0 y7 S" ?$ D9 i
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    * |/ _0 Y4 S; `. r6 U7 \
  19.         BaseL           DW      0 ;段基地址(BIT0-15)" s3 T6 [6 g3 G' m! P- }9 b
  20.         BaseM           DB      0 ;段基地址(BIT16-23)! x8 ^  ?, _, d# p1 E0 _
  21.         Attributes      DB      0 ;段属性6 z  c8 f  R$ C* |! i/ y! {6 F" s
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位). f) u- a8 ?. n" N8 w1 w
  23.         BaseH           DB      0 ;段基地址(BIT24-31)6 S# K" J: K: a9 a
  24. DESC            ENDS# X/ e0 \# l5 S0 ]: T
  25. , c2 m3 Z6 }& R: H  R
  26. PDesc           STRUC
    ; V1 J( N6 C& Q5 S+ k7 Q8 c# W
  27.         Limit           DW      0 ;16位界限
    / m5 f! v* H4 v" N4 b/ X8 [: t5 T
  28.         Base            DD      0 ;32位基地址. m2 j3 a  [& ^  d
  29. PDesc           ENDS
    ! Z7 z+ {% ^+ j% g

  30. 1 j- G9 D3 Z" x+ W: M  J
  31. GDT_def         Label   Fword
    4 N& x1 ?* b* e; H( B# r/ X% g
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>; W1 `( P& D; d
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>' R+ m% j" M+ m( A1 K
  34. # l% R' P" T9 S' R3 [+ k& Z1 s$ u
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    ; {( g3 E' E* Y. W& ~1 s- h( b* n  x
  36. DSEG            ENDS                          ;数据段定义结束' B# u6 S' |+ l

  37. * n2 l% P* q+ F, ]: a- ~
  38. CSEG            SEGMENT USE16                 ;16位代码段
    . M" E' N2 h3 i1 I5 J7 K3 N" a
  39.                 ASSUME  CS:CSEG,DS:DSEG* X3 o( k  E' D* b2 n' q9 h! i9 N
  40. .Startup6 h) ~9 {5 K  j( i7 b
  41.         call      Set4gb. `, m0 y% l* X! ~& {2 l4 L' C& k  ^
  42. ;
    6 |: e9 Z1 v$ g0 R* s
  43. ;       fs, gs即能访问4GB空间
    9 C1 d5 `  U$ R" G, O
  44. ;       write your code in here.1 Y" _5 m5 f, i$ _$ Z) k9 Z7 m
  45. ;4 [* w9 A4 U1 Y3 `6 f+ w& C9 K
  46.         .exit  R* A/ J+ _' Z. P
  47.         , M$ L9 L% S: R
  48. Set4gb          PROC      NEAR
    7 o6 Q! x* N# v( c- L
  49.         in        al, 92h* s8 P1 Z  T8 d$ n" n+ l
  50.         or        al, 0020 J. e4 r8 M! C5 k6 [# T, Q" l
  51.         out       092h, al* e) R0 M: v8 e; E( `( y
  52.         out       0edh, al- f# K5 t, F' k  \

  53.   l% e) s( L, z& }+ r0 w, u
  54.         cli
    0 k7 P( B! s0 l7 E$ y

  55. & j- j5 Z+ F& p( [: B
  56. ;        mov      word ptr GDT_Addr, (2*8-1);, x2 G% U( a+ h7 _+ A; K

  57.   W1 Q+ k& N; d' \
  58.         mov       eax, ds- c1 D# v" _+ M% [
  59.         shl       eax, 4
    . A* h5 R( O/ N, T# a! A. N
  60.         xor       ebx, ebx- K# ]2 y7 H4 }; X# w+ A( P
  61.         mov       bx, offset GDT_def
    / B5 |4 u4 N8 R# G
  62.         add       eax, ebx
    + ]0 T: E, t8 A/ t4 g+ |
  63.         mov       dword ptr GDT_Addr.Base, eax
    6 y9 q6 i! D# Y1 L7 N) W
  64.         lgdt      fword ptr GDT_Addr7 H/ k( C7 C- W1 s1 u
  65. & u3 z: v5 E3 k
  66.         mov       bx, 8, P5 O6 w, G; }: l
  67.         mov       eax, cr04 q! Z* W% F( y4 Y
  68.         or        al, 15 B8 I  c# i3 \: v& I7 }
  69.         mov       cr0, eax
    7 {: q/ `+ p8 J  F* i1 j' j* c" {

  70. % [, ?: J" v- I. Q
  71.         jmp       pMod+ m! X8 G3 E7 h5 Z4 I
  72.     pMod:
    , \, J9 j, T, R$ Y- r8 s2 V
  73.   \# P$ `: d9 J* A; A: v
  74.         mov       fs, bx' M$ H/ z, P) W* R; T+ t$ D& C* s
  75.         mov       gs, bx& x, R- x) M5 I0 Z0 }/ {; D
  76.         and       al, 0FEh
    2 A3 r2 L* q" E2 _+ E
  77.         mov       cr0, eax
    ( C( L! p6 B  j7 B) y; D  I* A" d
  78.         
    7 Z  Y+ Y: q4 O/ L- Y
  79.         jmp       rMod
      w: F3 k9 Y% k: Y
  80.     rMod:/ E- G" w0 Q2 Y. m
  81. 0 L. H" z2 \# t
  82.         mov       ax, 0% n: C, |7 w* V" Z
  83.         mov       fs, ax
    ( I( Q3 _2 G0 m& h
  84.         mov       gs, ax8 s2 [0 I5 A5 Z# B/ R! S# F
  85.         
    0 A+ A8 c) p/ w! e
  86.         ; 在2M的位置测试写一下数据
    2 ]; V7 _: E  P+ y# A/ \
  87.         mov       esi, 200000h9 x2 c2 K$ n% [5 S: d# [5 f
  88.         mov       dword ptr fs:[esi], 055aa55aah  k# j* X$ d4 X  o, m
  89.         ; 用RU去看看200000h的位置是否是此数据....% q! j+ O1 M; o' _# e1 S/ o" O2 }

  90. " X, m6 R/ ~9 y2 E
  91.         sti' [" V1 Q  j- Z/ G
  92.         ret/ O$ ]! M) A$ Q$ F5 T) B( A( B3 h4 t9 f+ N
  93. Set4gb  ENDP9 w. |8 u3 O) h5 O. _: Y! D
  94.        7 F, |2 A* D7 b# }) @0 `; j/ {
  95. CSEG           ENDS                              ;代码段定义结束( c/ G' s" I" ~/ h3 J; M
  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. h! u! z( ?! ?# r, R, \7 }
3 Q" M. K. |) D' B9 h
option->compiler->code generation中的option选中, [X] compile via assembler
0 V" }! g+ z0 a6 n) v9 m7 P
$ p  V; F1 v0 _- x- K6 K- 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;+ i5 g1 D/ [0 m3 n% P( U
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;: b: H+ n# G$ `
% E4 M- P7 c0 n9 U7 X% `3 I
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
3 k; S5 ]1 k8 n: w' B0 H 替换如下,
: W; v3 ]4 z5 W9 o- M( O/ `5 Z: f! hNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
8 m3 l- l* q  @% g) ^Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>' K1 m9 N' B$ G( \" K

) {. D/ Z1 _0 ]" jGDT_Addr        PDesc   <$-GDT_def-1, >7 Z! Z  p; h, w$ n% e" R6 W
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表 ( ?0 ~$ k$ y8 u4 d& S3 V
option->compiler->advanced code generation中的instruction set选 803868 y; H0 Z$ M# u6 b: m
+ c+ r) b  e& p* T+ `
option->compiler->code generation中的option选中, [X] compile via assembler

0 n7 G- m. e' U  B1 ^: K   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 6 V# o4 u  B. v
1 A  i/ M# ]: k+ Y1 E* F2 @4 F: u
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

+ H2 L* l" x7 p. S0 u& g& G3 j3 z( g( ^' L- |; {7 P! u
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;( W. |0 m/ U; O8 N' t
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 14:05 , Processed in 0.168723 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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