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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
$ n1 F" g# ?9 q1 k+ p
( o5 |, p6 W" P这是C的
  1. /********************************************************************" ]6 T: n( ]' L% `# f) t$ P" g
  2. *    File: DOS4G.H                                                  *
      a6 v' ?7 ]: N/ y) j. G
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                ** [! Y9 q) p6 N8 E
  4. *                                                                   *
    8 a' g* k& e/ T
  5. *    ========================Title===============================   *9 v3 u4 b9 E# c% n1 q8 Z7 u2 _
  6. *        这个函数是让系统进入DOS 4G模式                             *
    ' X" C% V- K1 k% ?0 h0 W) t3 v
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    8 N3 ^( B/ x9 `/ d
  8. *                                                                   *: Y6 w8 |+ D8 B7 i2 N/ x3 t
  9. *       使用: openA20(); set4gb();                                  *
    ( F& I: T9 K1 a  ?* [) |
  10. *                                                                   *
    7 w% }" o+ p7 g. _- L8 q/ q6 v- {! B
  11. *   ===========================History==========================    *
    0 Y9 w7 E, Y* `3 C
  12. *    author: bini                                                   *" O* R" s% L6 b" w+ j4 V5 m% a
  13. *      date: 2004-11-30  Frist version.                             *
      w; q* @4 e7 W( ^+ _7 P4 q; y1 V- I. X1 Q
  14. ********************************************************************/
    * j( v' p' w/ v2 t

  15. 9 u9 f- w; P7 U
  16. #include <conio.h>
    * O; I' e% i) R" o$ H; l
  17. #pragma inline
    : |3 i: H, x# M) d5 U% u
  18. 2 Z% \! O" J; U2 e0 i
  19. /***********************************************& @: e* ~3 t% \- l" m7 J
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *2 b+ i. y! t$ C1 o
  21. *    第二个为一个数据段,没有代码段。           *6 p: u: M7 C& ]
  22. ***********************************************/; s: m2 Q4 Q5 R: L
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/9 N3 x" a  {4 }( r! t# I. w0 h
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    - U' s6 Y: U1 g0 y/ k; p; @) i
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    0 M8 E& _7 p) f1 B: w+ t  l
  26.                                       */
      G" l& p. l; t( u1 D. d! c  w" w
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 ); I$ C; C3 Z0 G- l  u* C! ^4 n  @
  28.                                          最高字节为 base( bit 24~31 )- v% Y+ w: V+ u+ ~/ Q2 w  H  b
  29.                                          
    9 b; E- T% o; C/ L4 L/ o
  30.                                          属性Attrib = 0x8F92
    : g# w+ P9 L* [$ _
  31.                                          
    ! e9 Y& B5 _4 P5 D$ d$ a$ P' [2 P8 R
  32.                                              属性位Hibyte低四位为
    ; g0 }0 y' S( v- ^1 ~+ |8 p+ |# U
  33.                                                  Limit( 16~19 )=F, @9 C- }5 y* @' H0 p: Y0 R
  34.                                              属性位Hibyte bit7 为粒度9 a7 z/ p, z& N- d
  35.                                                  (值1=4KB粒度)/ \% ^2 M2 Y6 x" v) A
  36.                                                  8F & 0x80 = 1
    " O" t+ A1 O  N, k1 }2 b# s/ ^
  37.                                                 
    , \  S9 u# h! h6 G# b2 x
  38.                                              属性位Lowbyte低四位为段类型,值=2
    ; l( [9 N1 e5 ]( v- D
  39.                                                  表示为可读/写段
      D! |) b. @6 o: ^. B
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    4 `/ q2 `  M; N9 u+ i( ~( ~# D7 v
  41.                                                  描述符对地址转换是有效的。* g9 m! c  ^5 {$ V- }+ i! _
  42.                                                  bit0=1表示为:( \0 W$ k# s8 p+ h/ {7 |
  43.                                                  系统段描述符。而不是门描述符。
    5 S: e8 A" M% B1 M
  44.                                              . W4 Z2 P0 G- Q. t/ n1 m7 k
  45.                                          */
    1 j* u0 u2 `$ g4 @5 N1 c
  46. . S* s0 |+ K4 B* r& t
  47. /****************************************
    6 \+ T4 M! y0 K/ D, c9 J
  48. *    GDTR寄存器, 48bit=6bytes            *
    $ v/ k: A+ s; a' K& R. }7 U
  49. *    +-------------------------------+   *: p/ n# i  e$ q+ w* [
  50. *    |   32bit基地址       |16bit界限|   *
    6 ^, U/ g# d# Q# r
  51. *    +-------------------------------+   *" ~' W) ^4 m6 T0 h1 ~% ~" R
  52. ****************************************/4 w' Y0 H# R/ V2 t" Y6 j& @
  53. unsigned char GDT_Addr[6]={0};' X1 ]5 h5 c% e% W0 s9 }/ d
  54. / g0 t. W' F* t. Y' x6 j$ E) ~
  55. /****************7 @3 D" S$ l0 ]0 w3 X1 ?, k/ f
  56. *    打开A20门    *  c% C% J- g- X/ ]* n4 T0 Z
  57. ****************/8 ?- ^, |1 g1 o2 D& `) @! D
  58. void openA20(void)0 @, d  z8 U/ O% T
  59. {
    - Y5 T- V6 N; t" s
  60.     asm{
    * n. g4 O5 U/ I
  61.         pusha  a3 d) x- D; Z
  62.         in         al, 92H' V9 u4 M' e$ H4 U, e6 Z
  63.         or         al, 0x022 Z% z+ ?2 K; d' P# ^5 n8 {
  64.         out        0x92, al
    * i& F& A# p4 @; t+ d$ \2 ~
  65.         out        0xed, al; p7 X$ l- ~- Q6 C1 N( r* j3 j
  66.         popa
    % z2 _4 K% _& K9 n1 O# z9 g" y  k% H# j
  67.     }
    8 ^) v  I. n0 Z, }
  68. }5 {7 z: |7 i3 L! }6 I
  69. ( f$ C5 W, Q9 K9 ^
  70. /***********************************************
    * ]* w, x  D, l' ?7 T; V$ N' K; S
  71. *    函数功能:进入DOS4G                       *
    4 y; B) `. f: ~9 a$ ^/ f, I
  72. *    ====================                      *( G1 C. w5 v6 A, R
  73. *                                              *
    5 u2 l4 e# P: r  m& t
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *+ @! O& y# ?) G6 o1 r$ k) |# f
  75. *   如:                                       *
    7 h2 Z; p/ V" l5 X+ J
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    - v! O/ Y5 x) C: r4 g" M$ p
  77. *       表示为 2个GTD                          *4 _, I4 f$ t: Z* d. s* p
  78. *                                              *: ?- C/ c  z# k1 }1 X
  79. *    选择子为所在描述符内的字节偏移。          *
    ) i8 x1 r6 m& B) v( E
  80. *                                              *
    ! w; R$ W; k* P% [) V
  81. ***********************************************/0 g$ y, U/ u- T3 C: v5 g
  82. void set4gb(void)% d0 `' L+ f9 P3 A9 X) h
  83. {! d+ y  U3 S8 g" A8 L* M8 |
  84.     asm{
    1 N) d0 B5 T( [  C* p5 Y1 |+ ~& A+ e
  85.         cli, Z% I+ L% W5 A3 r
  86.         /****************************************
    % s1 s+ K5 Z+ L
  87.         *    GDTR寄存器                          *
    3 [. G. E% s: K& j  Z5 O2 p. c
  88.         *    +-------------------------------+   *9 \8 Q) I3 l! j; J; v0 W* }/ s
  89.         *    |   32bit基地址       |16bit界限|   *' B  W) v( {; h" ?; a$ X
  90.         *    +-------------------------------+   *+ z5 K1 _% @1 U5 j- k. k
  91.         *****************************************/
    ) c5 H, J! O( J/ |, W) ?! l
  92.         /*********************5 X2 r0 O9 g8 o9 n8 H+ ?' g
  93.         *        得出段界限       *
    2 F! q4 i8 h1 \4 A0 M0 i+ Q
  94.         *********************/$ L9 m" Q8 ]4 S6 b( l
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    3 ~+ e* {3 b0 L: [  ]$ [; x1 N  t
  96.         /********************************************2 x. {- m6 i' @1 h9 B
  97.         *    计算GDT表的32位基地址,存入GDTR        *9 t7 D2 t* b1 `& e  h& I
  98.         ********************************************/
    ( ]' U5 z8 Y) X( f  b0 t/ ^
  99.         mov        eax, ds
    - ?. w( C6 ]# L
  100.         shl        eax, 4# q5 m: e/ b6 t! m7 s
  101.         xor        ebx, ebx
    ) `% b) Y$ Q! K0 S* ]7 |: h  o
  102.         mov        bx, offset GDT_def
      G5 p$ ?+ g6 F. H( Y9 _' a7 W
  103.         add        eax, ebx
    - M2 v+ v. q; R# ?; |. `$ Y
  104.         mov        dword ptr GDT_Addr[2], eax
    1 m3 @% p' }- Y- X
  105.         lgdt       fword ptr GDT_Addr
    # e, c& {$ P( _8 v* ~) W
  106.         /********************
    4 c4 c& Y; g$ S9 A/ u1 Z; u9 y
  107.         *   选择子偏移      *
    5 i# R* K1 ?/ |9 S+ U  @
  108.         ********************/
    / B( [+ G5 m2 P/ L. v& q  D' l( }
  109.         mov        bx, 8
    0 z. q  s0 {9 h$ Y8 f
  110.         mov        eax, cr0  U' r; b, C+ r, a
  111.         or         al, 10 q+ q0 E* s, D9 y" f4 F
  112.         /**********************
    & h) |$ i% x; I
  113.         *     进入保护模式    *
    ) G; w3 k1 ~3 u0 K" D
  114.         **********************/
    : L( M! J0 w  J" {* D% C& }
  115.         mov        cr0, eax! w& R8 e1 v1 v( L5 M% Q$ }
  116.         jmp        pMod) p7 D* _' s0 s
  117.     }
    ; l; Q0 u* n- U
  118. & z( l( ^) l# G7 l
  119.     pMod: asm{
    5 ?* h5 j' I! \
  120.            /************************************************************. E( P3 F, c6 M
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    + x' ^% U+ X/ d/ X7 X7 W
  122.            ************************************************************/; a. \  S2 s. P7 D$ u
  123.         mov        fs, bx
    9 }* h6 Z0 {) L& ?4 v) V: D
  124.         mov        gs, bx
    2 @4 B* {9 n" D* q; Y
  125.         and        al, 0x0FE
    # K2 G5 w0 v  c
  126.         /******************: H$ x* c1 V* t# _+ @, X& f
  127.         * 进入实模式      *
      ?  q, V" ~$ F) Y
  128.         ******************/- u3 f! Z/ N" M  w
  129.         mov        cr0, eax
    9 x. v: D2 H2 T' A  W
  130.         jmp        rMod9 ^7 t% u# I  R8 n; C. r: }9 x& ?
  131.        }+ r4 U3 x3 x$ [9 X+ f6 `' f

  132. ' [% w5 d5 `- |) F
  133.     rMod: asm{, N% N0 ^5 r0 a5 s- A; J7 k1 ^
  134.         /* ******************************************************************
    , `" q% K, R: `2 o- p. k
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *$ F- h% H/ G: g9 H7 f6 X
  136.         ********************************************************************/) y  Q% O" t. r9 ~* M
  137.         mov        ax, 0# H  K) k( W+ \9 x" y( t
  138.         mov        fs, ax
    . {; X( R; Q$ S+ y
  139.         mov        gs, ax# w1 w! L7 l  ~; D" v1 w( c
  140.         sti
    1 ~5 G" \1 F2 F6 `/ q4 N
  141.     }. Y2 R9 j6 {- v+ N
  142. }
复制代码
这是asm的
  1. ;/********************************************************************" s, Y; g! ^% f$ F
  2. ;*    File: DOS4G.asm                                                *
    / f- m& p* ~& z  r. ~1 `# j1 Z
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    6 Y' A. l- M' R9 j  G5 {
  4. ;*                                                                   *
    . p( \/ M# o% g! U$ Y6 N" @
  5. ;*    ========================Title===============================   *
    % i% y( j: i+ x/ O9 n
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *2 h8 b) s8 u. _% Y
  7. ;*                                                                   *1 p/ A# h/ g5 f7 w, ~. V4 l
  8. ;*   ===========================History==========================    *+ B$ ]' l- S0 A
  9. ;*    author: bini                                                   *; ~/ ], K( ^+ J9 Y! A
  10. ;*      date: 2008-10-08  Frist version.                             *" q2 @8 k1 `* Z0 {* y
  11. ;********************************************************************/   Y6 [( d# p  L/ W1 o' b. [
  12. .model small# @( P6 D: B# \( X0 E
  13. .586p
    & \$ O/ F. k9 o8 z: |
  14. 0 p5 `+ e: k) y4 k4 p- B3 T
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    5 S. A& h, k. q3 S7 C

  16. 7 d/ f: M; d3 }, V, B1 t
  17. DESC            STRUC
    / H8 q, I" I5 _1 }2 D! A0 |8 a
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    8 V5 d3 a3 y  O6 J/ F
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    ! E' o- Y) n! ?' I4 w) P
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    " ^- C# h, O9 ^$ u' H
  21.         Attributes      DB      0 ;段属性
    - @0 H! S! T6 K: [6 K1 E6 ]
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)- k) L7 F4 p! b/ @; j) A
  23.         BaseH           DB      0 ;段基地址(BIT24-31)  K4 x+ o$ F  @  R9 \0 u! }- z) B
  24. DESC            ENDS! \0 C) ]* [; I! `
  25. 6 w& u& }5 \) d4 e( _/ I, O
  26. PDesc           STRUC
    , q( Q2 t( o' @7 t- L* L& b& G
  27.         Limit           DW      0 ;16位界限
    4 B/ P! p6 \* }( N' I7 K' Q/ z7 q( |
  28.         Base            DD      0 ;32位基地址1 R/ t1 r, G6 ^$ k& ]% A5 p
  29. PDesc           ENDS
    6 w- j  a, u8 Q) D( b0 P5 w2 @
  30. / q1 e5 l( w- b! Q, r1 `
  31. GDT_def         Label   Fword# _, f) U1 R9 L7 M/ Q+ N- g' b
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    ' H+ Q* l+ h  W, f/ @, m
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>8 D) ^: w2 `; Q1 H" K8 [
  34. 9 B9 N. S0 O6 t0 N$ s& R/ `
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    / X3 g# U9 b  v& K1 |7 G9 r5 D: }
  36. DSEG            ENDS                          ;数据段定义结束  x# F8 v0 u1 o" p: D
  37. 5 z* Z, p4 ^# x' C5 S6 V
  38. CSEG            SEGMENT USE16                 ;16位代码段; J/ t3 |( `$ g8 _
  39.                 ASSUME  CS:CSEG,DS:DSEG
    ! ?4 k: V* F- S3 a( Y
  40. .Startup% ^6 n8 L& C, u8 [& |8 d+ `! h
  41.         call      Set4gb" ^7 {5 T6 S, z
  42. ;
    2 D; e7 V& ?0 k7 ]2 G
  43. ;       fs, gs即能访问4GB空间
    4 K. C7 b  ~7 ~+ W4 f) Z
  44. ;       write your code in here.8 S2 o6 Z& c6 k" ~5 b2 E
  45. ;
    : _+ M9 c# S! n% {8 T: }
  46.         .exit
      }5 T! t; Q2 `. W! J; p
  47.         5 m  X& S3 ?7 M/ U
  48. Set4gb          PROC      NEAR
    0 n9 N7 e; _5 }5 l* p) L9 @
  49.         in        al, 92h; x( _1 d9 D5 O
  50.         or        al, 002
    8 ^, W: o9 e9 ?4 T. M( ~
  51.         out       092h, al
    0 E' }: r/ G3 U3 b: v
  52.         out       0edh, al& ^( j9 S8 V, t) q- n8 [

  53. ' D* k- q# e+ z2 }  a& w  x: }
  54.         cli
    " I1 v; l! U# A
  55. 2 L/ }4 L: S  D/ }% W# F+ d
  56. ;        mov      word ptr GDT_Addr, (2*8-1);0 y4 {( K6 D6 n' K$ K# ^

  57. 1 t( h0 p- G! u1 F4 V7 P, J9 b
  58.         mov       eax, ds" |' {& c4 C" K6 B; m! Q' z
  59.         shl       eax, 4& C; d) }, r3 a- w& Q7 E. t
  60.         xor       ebx, ebx
    1 ]; B4 B- `: C2 {1 Z
  61.         mov       bx, offset GDT_def
    % h; h; P! |3 A1 w( r% |, n
  62.         add       eax, ebx( _5 K! z0 j# Z3 }+ k* q
  63.         mov       dword ptr GDT_Addr.Base, eax1 p: H+ s, }, i. ^7 g; _/ f" r
  64.         lgdt      fword ptr GDT_Addr
    5 K. G) ~9 |! G+ W1 u, w% J
  65. # Z6 _- x4 Q% a+ a* O$ S
  66.         mov       bx, 8
      j$ r7 u9 d9 J# O, _
  67.         mov       eax, cr0/ Q: `# g) D* ], H# K
  68.         or        al, 13 r6 t* U8 }1 I/ F
  69.         mov       cr0, eax, W& b2 p$ z1 Z' l9 T0 e

  70. % @& N/ a1 R7 }' F) J
  71.         jmp       pMod4 T4 B* s4 r3 Q8 e! J' B. U4 R
  72.     pMod:+ }$ t! G5 a/ h! H, F+ A

  73. 0 {+ b- B0 m4 [. {4 j+ e6 U  H" ^
  74.         mov       fs, bx
    . \5 f" u% k  _9 ?2 p! H  {
  75.         mov       gs, bx
    2 i6 h4 ^7 P: Y5 n# Z  E9 e- s
  76.         and       al, 0FEh" ~6 |! N# j6 G  l8 X
  77.         mov       cr0, eax$ V( Q1 L& x# u. K
  78.         
    ! m9 S: ^! b0 }4 A; y
  79.         jmp       rMod
    ! Q* k  G) i! i& v6 l7 m
  80.     rMod:$ i/ j' c$ b  W' C

  81. - o, `$ {* T3 r
  82.         mov       ax, 0
    0 |: n  O; d- d$ \# `
  83.         mov       fs, ax5 L9 @; ?5 o  A3 Q
  84.         mov       gs, ax" V2 G- N- r" W4 ?
  85.         
    ( r) Z6 p+ ~% y# P3 s9 c$ g6 J
  86.         ; 在2M的位置测试写一下数据5 T9 F! q0 {& Q: g1 B/ d4 q* A0 M) r
  87.         mov       esi, 200000h# U, Q- h1 j  J1 L* T: ^7 f. ~: [
  88.         mov       dword ptr fs:[esi], 055aa55aah
    . Y" F8 x  p3 N& w- i( S4 k9 G
  89.         ; 用RU去看看200000h的位置是否是此数据....
    / n9 G9 O# E7 P$ h

  90. ! D8 l0 b+ p. y- I  W( k( s3 z
  91.         sti9 t4 v4 N4 K$ c  F
  92.         ret
    / u% j5 e: _4 l/ W" I5 ]+ r
  93. Set4gb  ENDP
    % s! k/ u. V) Y) @0 K( r1 f. s
  94.       
    1 y+ Y0 C$ e' y, r; w; C4 y, H, x
  95. CSEG           ENDS                              ;代码段定义结束: S3 W3 n# z) a/ ], G5 |
  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
6 z  y5 J9 A" J$ @5 n+ V! V' I' n( s5 w2 j# R; H6 y! O* h) e0 T/ e2 Z
option->compiler->code generation中的option选中, [X] compile via assembler+ ^: t( p5 |: J# D% w) l

' p; e* R5 N" q, x( j5 g[ 本帖最后由 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;
# U/ a" [3 v0 t( d0 ZData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;' _5 M5 p5 y3 W& m

, B7 V/ G' d- ^9 CGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
: X# b1 H3 j; v( M/ R4 B- e- T8 c 替换如下,
8 F6 O2 H1 T% f; NNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
- T7 U- ]2 c- |* h+ rData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>, M2 p2 E' e* Y/ q- F
8 b0 ~6 q0 E& ~+ K: S2 X
GDT_Addr        PDesc   <$-GDT_def-1, >
/ m" O  r% I( U" _7 }+ ^$ G这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
9 E, {1 W7 m, t9 w: n! ?" h$ M& Loption->compiler->advanced code generation中的instruction set选 80386
9 I6 r, W4 Y2 R; @/ g, I) }- k5 m0 O8 q( I
option->compiler->code generation中的option选中, [X] compile via assembler
5 n$ J$ D8 w. Q: ]2 v" m+ X
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
" f1 x% i. b/ {: r& j1 O
7 {; V9 d/ P8 e' r* B, o   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

  }. N, T* ^1 M1 X+ G: e% K3 `/ U1 p2 ?* E
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-15 18:51 , Processed in 0.082888 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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