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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
! \" {8 @) |5 U4 a5 k+ Y! O1 R; M; a# E# U+ [8 X
这是C的
  1. /********************************************************************$ w% S/ Q7 z' s4 _$ y
  2. *    File: DOS4G.H                                                  *
    0 z: k9 @- V: t) ^; ~6 c* J- n. ~
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *6 d" H7 d& L9 i% ]5 F1 j% O
  4. *                                                                   *! m; A' e9 d2 [2 O( ^% Q
  5. *    ========================Title===============================   *
    & f9 `0 S7 q( \, ]+ Z
  6. *        这个函数是让系统进入DOS 4G模式                             *
    $ \/ u: v5 O! K7 n
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *9 |$ g' g  r1 d
  8. *                                                                   *
    # ~% i/ Q6 [7 U; s& r8 B
  9. *       使用: openA20(); set4gb();                                  *
    ' ]5 t+ v, j! g( V
  10. *                                                                   *
    ) H( o- l6 ^0 d& j5 \' O+ ~
  11. *   ===========================History==========================    */ O9 \" i3 I5 x$ O
  12. *    author: bini                                                   *, h* i1 |! k4 \& T% B
  13. *      date: 2004-11-30  Frist version.                             *" R. \9 e6 p  X9 g2 l1 m$ q/ q6 r
  14. ********************************************************************/4 T, V: s  {3 ]& {% U' D
  15. : N4 m. S) Q( T) |
  16. #include <conio.h>
    7 Q" j& P& v/ s, o. x5 {; H, W' E
  17. #pragma inline
    0 _8 G2 ?& }5 n0 c/ B

  18. 6 ?) i5 m3 n8 W+ e
  19. /***********************************************
    ( H7 F' j: Z4 q
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    ) _3 r! w# l" D' `6 O
  21. *    第二个为一个数据段,没有代码段。           *
    % ]# t5 ^% K/ }  K0 _- i0 Z
  22. ***********************************************/- E* v; j# n: k- {5 K
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    " y& B. v! U! H3 j
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    / E- g7 \" e$ U, E
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    2 Y' J0 \8 a6 k
  26.                                       */- ?( Z$ g3 C5 a
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )7 r! y/ c0 e5 d/ h- {9 \$ ^
  28.                                          最高字节为 base( bit 24~31 )8 z+ b( M* U/ i% q
  29.                                          3 j; i& b+ a) e1 d5 ]5 }
  30.                                          属性Attrib = 0x8F920 ^* _; x6 J% w% v' w) {
  31.                                          9 n! S6 O4 \/ v  R  M& o
  32.                                              属性位Hibyte低四位为 2 j6 Z+ b! }, x
  33.                                                  Limit( 16~19 )=F
    * F3 {/ L. n  F5 y% ]4 E
  34.                                              属性位Hibyte bit7 为粒度' r) W3 V( N, z, h2 k
  35.                                                  (值1=4KB粒度)
    % @2 ]- o' J! t4 N- }
  36.                                                  8F & 0x80 = 16 s2 `* l) P( b; @
  37.                                                 
    2 v% L+ E. p' c3 a/ j% R
  38.                                              属性位Lowbyte低四位为段类型,值=25 R, X7 h! N/ h* e
  39.                                                  表示为可读/写段7 x8 {1 f) T$ z  y
  40.                                              属性位Hibyte高四位=9,bit3=1表示:$ v( c( V% G* @/ s' ?
  41.                                                  描述符对地址转换是有效的。
    4 m* W/ D3 S0 ^5 u
  42.                                                  bit0=1表示为:) o% ~2 L. X% x0 [2 V
  43.                                                  系统段描述符。而不是门描述符。$ s8 J7 U! k0 j  z4 H8 y2 n, z
  44.                                              
    6 i- @5 r* D& `7 S- u$ z0 b% ^
  45.                                          */" D2 b8 m1 F% z9 v

  46. % V  u0 j3 y# k2 o9 ^: X/ i; y( L2 ^
  47. /****************************************+ x& S5 x: ?/ S2 y% n' u; h5 ?- m
  48. *    GDTR寄存器, 48bit=6bytes            *8 Y1 E. T. L6 t. N' [. i
  49. *    +-------------------------------+   *
    0 }# f' o: G0 s* g2 v" [) ~
  50. *    |   32bit基地址       |16bit界限|   *
    2 o- f" |! p0 W3 Q- k0 K0 h
  51. *    +-------------------------------+   *
    ( f% X& O# E2 p1 P2 I# H
  52. ****************************************/
      K# f7 k) S  _9 p- d# F1 P) D
  53. unsigned char GDT_Addr[6]={0};* J2 k1 o$ s0 F9 z
  54. & r* \( M& ], O7 K3 h
  55. /****************
      ~, l7 ^+ a* \: f. m
  56. *    打开A20门    *
    ; ^$ c  T' R3 o# m% B6 }5 m
  57. ****************/; T* {* D' q( \4 I% r" ?3 j
  58. void openA20(void)2 t& k, h; g1 _7 r- j
  59. {/ P* k% R7 A0 r3 [+ `; Z4 g
  60.     asm{* U9 k' ^0 G7 o: a  l- Y
  61.         pusha
    * w3 Y2 F  \3 k5 g5 \  B: \8 m+ L
  62.         in         al, 92H
    8 {1 M+ F, X; r! q4 C
  63.         or         al, 0x027 X5 ^  x/ ^5 h: q/ |/ @
  64.         out        0x92, al
    ; p* e$ @) p4 R
  65.         out        0xed, al. |( i$ h* C- k
  66.         popa# e5 N; U( I1 c" A
  67.     }# n3 l/ V8 {  R# d( D5 X8 J
  68. }
    , d2 y2 n+ E' {/ p: i
  69. 0 g! w7 J: z) l3 i8 I- o& Z- z: z
  70. /***********************************************' Y* i  w* B7 K/ k# z% w
  71. *    函数功能:进入DOS4G                       *" |5 {$ O7 Z% Z  j" W# p
  72. *    ====================                      *
      x# {# n/ ]- G5 p
  73. *                                              *
    0 M" U  ]$ v# u7 X5 n0 {5 k
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *5 Y/ o3 ]- B& H: ?. @7 y# r
  75. *   如:                                       *
    " ]  Y$ n9 L9 ?! \9 @9 G0 ]7 D
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    . Z( e1 D" a4 p# q  ]5 ?' }% u4 D
  77. *       表示为 2个GTD                          *  J, P* @* I% R5 X! U4 j# q
  78. *                                              *
    3 u9 {- p0 y$ s8 |1 z
  79. *    选择子为所在描述符内的字节偏移。          *
    . Y$ V5 k, t/ m$ e7 ~& T% `2 B2 O9 f
  80. *                                              *
    " P& J6 L0 a8 h' k! ]/ b
  81. ***********************************************/2 \: ~$ w4 F6 w# K' r
  82. void set4gb(void)
    3 W/ f. i- ~% N) R: S5 B
  83. {0 N7 p' ~+ c1 J$ F3 x
  84.     asm{3 w0 }( H0 K5 e- R+ k0 m: q2 q2 n
  85.         cli
    2 I* }6 q& r* I+ P5 e+ v7 E
  86.         /****************************************, \; l# {9 b' s( M; @; K0 \
  87.         *    GDTR寄存器                          *% f- n* l1 E1 G+ x
  88.         *    +-------------------------------+   *
    & |, P. X; y  B/ W! e/ O8 L) l
  89.         *    |   32bit基地址       |16bit界限|   *
    5 C, E, G+ ^/ `7 q( e1 P" B. S
  90.         *    +-------------------------------+   *
    ' G) u0 g( o7 e# ]" d  |$ R4 ]
  91.         *****************************************/
    6 j- A; Q; h! |; l. p- G# ?% `
  92.         /*********************6 |  _" ~% H/ z9 D! P3 x' l" l
  93.         *        得出段界限       *
    * f9 f" u; I+ _6 G' e$ a: ~8 c- R
  94.         *********************/3 }4 o9 k9 @5 M' U% C; Z' o4 `
  95.         mov        word ptr GDT_Addr[0], (2*8-1);! ~% `. Y" @) Z4 A, h
  96.         /********************************************+ W4 P. P1 I8 E( x
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    6 r+ C$ O& D. H% N$ W
  98.         ********************************************/0 `2 F& N# b7 o- ^. h. l
  99.         mov        eax, ds
    7 p7 Y2 c& g0 T# ^' C
  100.         shl        eax, 4& ~* Y% e9 D5 @' z3 b( i* B' }
  101.         xor        ebx, ebx( c% ~+ d6 O, y3 q& b7 d& \
  102.         mov        bx, offset GDT_def8 L! L* v5 D( O3 Z2 h3 a6 e3 d
  103.         add        eax, ebx
    1 D+ a' `2 r, _" a) o
  104.         mov        dword ptr GDT_Addr[2], eax
    3 Z& Y, \; [" F3 P% Y7 v
  105.         lgdt       fword ptr GDT_Addr
    + y6 W2 d0 S6 W+ k2 W5 T. w
  106.         /********************
    & ^8 ^8 H( |. L$ m4 R$ `
  107.         *   选择子偏移      *# z4 _! X3 h1 B& l2 G1 x  X
  108.         ********************/, m! ]% [% D  p
  109.         mov        bx, 8, Y& M* I4 i$ k9 a
  110.         mov        eax, cr0% D4 d, W/ R+ Q; }& d& t( A+ Z/ U; _2 r
  111.         or         al, 1( X# f/ x2 `! O* z
  112.         /**********************$ [' ^# v. C( J3 W8 J
  113.         *     进入保护模式    */ Z# d: c. i4 W" K/ W' s
  114.         **********************/
    ; q$ t* R9 l7 m8 E1 R1 Z
  115.         mov        cr0, eax7 e4 ~9 i0 \. H9 z+ W8 \
  116.         jmp        pMod
    ( e- i% Q- ^0 q5 q, o! @. E% k
  117.     }
    3 F1 N" M" P" ?. }: \2 F5 a6 C4 B
  118. . y* u% e% u; P( @' Q
  119.     pMod: asm{
    7 z" K- z3 V+ n) l% s8 P4 G& o9 `
  120.            /************************************************************
    - y* |3 N4 a' j  M" b
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    . u5 s/ S  w8 O2 s
  122.            ************************************************************/6 |. M: P* P0 {" l2 F$ o% c# C! y
  123.         mov        fs, bx: n4 o2 f, t$ [- ]* H
  124.         mov        gs, bx- {% |0 g5 b& D, X4 [
  125.         and        al, 0x0FE( o" K. R: ^# A* t
  126.         /******************) N8 r! u+ u/ g; A
  127.         * 进入实模式      *
    + S) J1 p5 P. j- e. j6 p* ^
  128.         ******************/% @; I: v; z4 N
  129.         mov        cr0, eax
    7 D$ p+ B8 H2 w; |
  130.         jmp        rMod
    2 L! \, Q  z. a% m' {, Q
  131.        }
    ( W! T+ ]6 i! n  q3 a4 v- N

  132.   ]4 L* d; C# ?3 |! t
  133.     rMod: asm{
    5 s# S; X7 g5 q% a6 t
  134.         /* ******************************************************************
    0 Y, L: R) `- c
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    / w6 U4 w$ [& f4 J3 N& z3 m. K& _
  136.         ********************************************************************/
    : M6 s7 p9 b, k% o
  137.         mov        ax, 0
    . Z; q7 J% |5 O5 M
  138.         mov        fs, ax
    $ }2 I0 `, U9 {# w7 T  W- c/ u1 i
  139.         mov        gs, ax
    / h9 M: ^! U  |
  140.         sti
    ; U! o0 l# c& m0 }, u4 X
  141.     }4 B0 r+ \( C: j% I9 z/ N" T' D
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    ) \8 h( Z6 E' ]$ `; R( m+ U/ I
  2. ;*    File: DOS4G.asm                                                *
    3 D( {# \- A! p- J2 z2 E- @+ ?2 m* F
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    ! Y* z, G. M2 v6 M
  4. ;*                                                                   *9 a: @- c; d* |# M+ r( J# S6 T
  5. ;*    ========================Title===============================   *
    6 K& A/ }9 e* M2 u; T! J
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *3 b3 m6 n5 `6 B5 k4 Y# P( Z
  7. ;*                                                                   *
    % Q  p  [7 U5 ^9 R7 j" Q7 u
  8. ;*   ===========================History==========================    *
    ( f! D  L5 y& j
  9. ;*    author: bini                                                   *
    2 z1 E% g5 g" \1 g4 y
  10. ;*      date: 2008-10-08  Frist version.                             *
    . f) [% `- y, N( k" }0 n
  11. ;********************************************************************/ 7 r$ w# m1 D$ G% M
  12. .model small
    # m+ H) I5 b9 N; J, W
  13. .586p
    + ?& [# S; h# l, n9 l' A& Y% V5 u9 j
  14. " x$ s& h5 I* |: ?) J9 P
  15. DSEG  SEGMENT   USE16                 ;16位数据段7 @8 J" r) `. s+ @& l
  16. ) Q) K6 r5 ]( \/ O
  17. DESC            STRUC7 \- J* t, N4 b& b+ C
  18.         LimitL          DW      0 ;段界限(BIT0-15): ]1 d: B. u6 C5 C5 C
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    8 Q" P, d! r5 G: S7 G0 ^) e, @; _% z
  20.         BaseM           DB      0 ;段基地址(BIT16-23): Z, \+ g( b  g
  21.         Attributes      DB      0 ;段属性
    - |  p5 A) b! ]+ Q7 w. I# h
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    6 U9 T. \2 G9 J" S8 r# \$ [
  23.         BaseH           DB      0 ;段基地址(BIT24-31)5 Z+ R+ a2 \9 |% R+ u) Q
  24. DESC            ENDS0 q* g& T2 V- f. h
  25. % G, Z0 g2 l6 E
  26. PDesc           STRUC& q) G7 m# y! |
  27.         Limit           DW      0 ;16位界限" x+ m" c3 `+ Q7 \6 F" U& d5 S% F
  28.         Base            DD      0 ;32位基地址
    ' f/ S/ O' E. [) X2 v
  29. PDesc           ENDS
    ; x& `, L. s( f" d- I% [
  30. ; ~, s* D( A2 I+ w2 H4 y
  31. GDT_def         Label   Fword' d/ h% _5 p. d, Y8 ?5 a+ ]9 ~
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>% b* }9 ~# s( K. U; O/ h: g/ C
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ! h( g  ?; L5 }1 J: f8 j$ B
  34. ! ]/ J) J1 F% O8 u5 ^6 [. A1 j; @
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    $ x' D* T/ i1 D5 V
  36. DSEG            ENDS                          ;数据段定义结束
    % w# h: D( I. y4 G8 w4 i  y

  37. ( C' a& I8 T5 y8 x6 R
  38. CSEG            SEGMENT USE16                 ;16位代码段
    % i0 j& d3 }+ ~) E6 S4 ]  |0 j' J
  39.                 ASSUME  CS:CSEG,DS:DSEG6 ~. ?1 A, x0 d, C6 D3 b+ x* A
  40. .Startup+ D: E! K6 H) s$ \3 g' Y) r
  41.         call      Set4gb
    & K; V' v. T' u4 O  t3 I7 Y
  42. ;
    % ~5 E+ W: ~; N0 R( s$ P
  43. ;       fs, gs即能访问4GB空间# q# g3 L1 t/ ~! A6 `+ `' Z- j$ u
  44. ;       write your code in here.
    1 ?) G- o$ w9 H- n; V
  45. ;! e7 Y) p* w9 h, M* R$ |
  46.         .exit) `; Y  z& u) S
  47.         
      n9 v& y% t- V$ e- `! [
  48. Set4gb          PROC      NEAR9 V2 f" c9 J( |2 a# i8 q9 h
  49.         in        al, 92h3 h9 [: o4 \( K0 p( q5 Z# D: c
  50.         or        al, 0024 H# k9 s: ^3 n2 |% Y
  51.         out       092h, al2 a0 |( c; s. S2 I
  52.         out       0edh, al
      `& D9 K, U) l* r( G4 B7 q3 {( G

  53. & d' b& M" h. {. a9 w9 c$ I
  54.         cli
    0 O: |: M) ?/ |- l) ~6 ?

  55. - j& [, a/ c5 b  E4 g$ J
  56. ;        mov      word ptr GDT_Addr, (2*8-1);) `4 u5 d  n- B( b' `2 `
  57. 7 H% R7 R8 ^) r8 s8 y' [6 g2 q" O
  58.         mov       eax, ds# v! ~" Y+ i5 m, f
  59.         shl       eax, 4# N5 Z4 _/ L. e9 ?& N/ Z8 e- ]* T
  60.         xor       ebx, ebx, \$ d( U7 }4 K- j/ G: b3 M
  61.         mov       bx, offset GDT_def
    1 ]: f) E8 c5 e4 R5 G4 p
  62.         add       eax, ebx
    7 B7 c! k/ @% I0 h
  63.         mov       dword ptr GDT_Addr.Base, eax: z& J( Z5 i8 N8 @
  64.         lgdt      fword ptr GDT_Addr
    ( N) G5 S) u' j# Q9 ?

  65. $ [/ r- X6 W& q# S8 {2 u
  66.         mov       bx, 8; B5 k' K( P  a: [+ C# @
  67.         mov       eax, cr0
    6 I. M* n" k, H' J& ]$ m0 W7 ?
  68.         or        al, 1
    , J3 K* _4 D3 J8 L
  69.         mov       cr0, eax# o8 c2 a' ~* T/ o) M+ N
  70. + k3 S* Q% y7 a& n* w
  71.         jmp       pMod
    ; F$ a4 p/ Q" J1 \, _6 a( @
  72.     pMod:7 v) |" W( E. v: r

  73. : c/ N& b7 ~7 y  U/ o- J
  74.         mov       fs, bx6 a( ^/ H% c# L, U
  75.         mov       gs, bx$ ?- @( v' m: h
  76.         and       al, 0FEh
    9 c& X1 A( P2 r1 P/ X1 d: `2 y
  77.         mov       cr0, eax
    % C# ^: x& Y# F2 ]$ P3 O" w9 e
  78.         % B9 ^' D, t0 I. Z) M8 [6 I
  79.         jmp       rMod
    " |- H" V( \( z! D
  80.     rMod:# v, T3 M( a! i% w- m4 a

  81. 6 i' J% A+ k! }7 r/ I6 o
  82.         mov       ax, 0) L! Y) X4 E9 X+ s6 Y9 J
  83.         mov       fs, ax/ L% x0 H5 |/ c9 i5 E9 f* s
  84.         mov       gs, ax8 m  p5 j. r* L1 Q; y9 a! d
  85.         
    . x( U3 d2 m; M0 S* u
  86.         ; 在2M的位置测试写一下数据
    6 ]3 o! [7 o9 x+ Y( j/ `! K, s
  87.         mov       esi, 200000h
    1 i6 j! z, s& |
  88.         mov       dword ptr fs:[esi], 055aa55aah6 e' a2 j% o% ^( U1 g
  89.         ; 用RU去看看200000h的位置是否是此数据....( ?# e8 a% H1 e4 H9 j+ v
  90. & n' h7 ~+ I8 [& `/ e, t
  91.         sti+ c- P7 \8 v* E1 n, r" r, T. q
  92.         ret* ?/ j3 `" z$ @4 |: ~
  93. Set4gb  ENDP
    5 [% v0 |" J, y+ a1 u
  94.       
    ' X* ^" J2 ?2 V+ X+ P& G
  95. CSEG           ENDS                              ;代码段定义结束! K* L% u# V  i/ U
  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
7 h: J/ E& V; n6 q  ?1 G0 b0 ~3 W8 t0 u: H/ n. y# p4 T
option->compiler->code generation中的option选中, [X] compile via assembler
9 V0 @9 d* ^, L# w+ @9 O0 v7 W+ s7 g( j8 x/ p; o+ x" f
[ 本帖最后由 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;
; S( M' h. t( S0 U/ W, pData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
2 f$ U/ _: h5 z( D
  F# S3 W  \- IGDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;/ }1 I1 o5 ^; g
替换如下,/ L; ]7 B4 T/ x0 @, \4 ?
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>& Y0 A1 p0 p, d
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
1 `1 X) C8 c* ?! O6 W' [
: @% u1 T8 S; k' P5 NGDT_Addr        PDesc   <$-GDT_def-1, >% L* x$ u3 _# S$ M# D
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
% i+ X1 F. }( q( S% Z& ^* X* L3 goption->compiler->advanced code generation中的instruction set选 803868 k6 x" B+ S5 x$ H* i4 ]1 H, P
, W' y6 V! N# A7 N% v* ~
option->compiler->code generation中的option选中, [X] compile via assembler
( T% o9 V# L- @
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
' Q3 m0 x; V+ c! C% x5 d, }
" L8 H6 @, ]5 X1 R$ h7 }6 Y   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

6 p9 n- M1 v1 K$ B; g0 b/ s# i/ Y+ B5 S  Z8 b9 y; O
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;% n( {# |$ s( f# X# s( }) y
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-1 19:32 , Processed in 0.103678 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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