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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
. u9 |: l: X; D# B, d6 R
: C2 D: O; C7 |# i这是C的
  1. /********************************************************************: J, t3 a* g8 F# H
  2. *    File: DOS4G.H                                                  *8 {) E9 d3 L% Z
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *0 z1 b+ r) y- a; v2 g1 W
  4. *                                                                   *
    8 ]8 h$ \& S. H2 N" p* g
  5. *    ========================Title===============================   *
    ( Q( @: v$ u0 ^# ^
  6. *        这个函数是让系统进入DOS 4G模式                             *
    / j2 h# i; I/ d2 T" N. q; _% L
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    , K; d; O  }8 j2 [" ^# W
  8. *                                                                   *7 k; Q+ s: z& o; b, B" k# v
  9. *       使用: openA20(); set4gb();                                  ** z9 p, F9 I6 U, ^  v# q. H8 L% B% X
  10. *                                                                   *
    " W. P% d% R" _: ?- S
  11. *   ===========================History==========================    *: p; o) l- P. `. t
  12. *    author: bini                                                   *
    + h! n+ D8 y+ @+ E7 K6 Q- H
  13. *      date: 2004-11-30  Frist version.                             */ _- H. l0 f2 [1 L" c+ {; x
  14. ********************************************************************/1 \6 X. ~) j  g$ A

  15. 9 T5 o( v1 f+ d! ]( G6 z+ C
  16. #include <conio.h>
    " g1 D* Y0 j) J) @5 C2 N
  17. #pragma inline
    4 d% z, J3 m. J4 [4 ?. \: w
  18. 2 A) E& W$ b* l3 t6 O$ R
  19. /************************************************ P  U, Q1 O+ U
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *8 J- u8 z- c% {* n. J4 j; Q7 U
  21. *    第二个为一个数据段,没有代码段。           *
    $ t& S( g& x7 e2 I8 ?& W
  22. ***********************************************/
    , Z9 A/ ?2 k7 i: j
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/& x3 I" q! h+ v' ?6 `
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, $ {$ F' `4 C- R# {% k2 g( ]
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    2 f: v5 K8 i; b/ l# k0 [. [
  26.                                       */1 j( N9 U  j0 e
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )! w& P7 B" ]# J4 ]
  28.                                          最高字节为 base( bit 24~31 )! V  _/ j4 C0 ~- J5 q' b
  29.                                          7 H& w3 {9 U9 y, D- p$ o! \
  30.                                          属性Attrib = 0x8F92
    9 Z0 ~" e+ b0 \2 l6 d2 z
  31.                                          
    & N' ]7 W) s5 \; q% `
  32.                                              属性位Hibyte低四位为
    1 K& R1 y" u8 R% _7 P9 X) `* D( d
  33.                                                  Limit( 16~19 )=F  C. P7 E$ j, U
  34.                                              属性位Hibyte bit7 为粒度+ H: {0 r% m  `
  35.                                                  (值1=4KB粒度)! h6 \, A/ [5 x' x. X
  36.                                                  8F & 0x80 = 13 r. g2 O- i8 Z5 t
  37.                                                 
    8 c$ m( P+ H1 q9 F- n, @
  38.                                              属性位Lowbyte低四位为段类型,值=2# j- T3 a# E- m1 S( Z; y# Y
  39.                                                  表示为可读/写段
    # n: }; E! k' A
  40.                                              属性位Hibyte高四位=9,bit3=1表示:
    - V- J1 L$ f0 p+ N
  41.                                                  描述符对地址转换是有效的。/ U( W1 v' n7 l% W
  42.                                                  bit0=1表示为:
    6 G1 A. x+ P3 T* G! o5 `
  43.                                                  系统段描述符。而不是门描述符。+ A$ \/ ~& f- s  Q9 Q: H
  44.                                              0 Q! b" L; I! S9 Y4 X8 S8 _+ E3 o* u7 F" a
  45.                                          */$ w) o4 Q1 K, o/ t$ _

  46. ( a- H; e* |+ _* Q8 p) d
  47. /****************************************
    - X( V5 `, t& Q' T8 J) w' g
  48. *    GDTR寄存器, 48bit=6bytes            *! R% l: G. g4 @+ @" a8 H
  49. *    +-------------------------------+   *
    9 i9 ^0 ]7 U- q( k; e0 T  r7 C
  50. *    |   32bit基地址       |16bit界限|   *6 |& G& M6 Y+ ~
  51. *    +-------------------------------+   *0 ^$ w( Q" b# N  p/ H
  52. ****************************************/( ?  E& ~- N4 S+ q4 E  Z
  53. unsigned char GDT_Addr[6]={0};1 s3 p1 f  Q& p* F
  54. + L# f+ h) Z. ~# ^
  55. /****************
    ; w9 G3 \- c6 {3 h9 ?6 E6 j
  56. *    打开A20门    *
    6 q5 _! @) v1 J4 F  L
  57. ****************/
    * M5 l7 g" G  v0 M+ p4 q6 Y
  58. void openA20(void)0 F9 v; C$ S' l4 u! ?& [
  59. {
    9 b  s7 x! {. |. @: r
  60.     asm{
    ! D: R1 i# S; m9 M
  61.         pusha
    - c/ Q5 d6 l6 U6 ]- l' v
  62.         in         al, 92H
    * o/ R) {1 [1 M; v1 k. q  z' E  [
  63.         or         al, 0x02* l$ O( o, \- k5 v% _
  64.         out        0x92, al: M0 D6 u+ m( K! P0 ?
  65.         out        0xed, al! S: h1 r! h  q
  66.         popa! {0 o5 M  {6 l% E) A* y/ r; l
  67.     }
    3 \; K$ k: Q9 r1 u
  68. }
    . I- ]! r$ e7 B( y( F) X5 |; B

  69. 8 T; q: @0 y) |% K7 @
  70. /***********************************************
      p8 D3 b! B, l! b  D, n" T# r* K
  71. *    函数功能:进入DOS4G                       *
    7 g0 R2 D* z) U4 P! [; d  B$ Z
  72. *    ====================                      *
    ; [- F) }4 E, _6 `3 H6 M& ~* m$ O
  73. *                                              *7 h9 g/ a9 g+ N# o+ o5 z2 _! E$ W9 P
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    $ z$ `) k( L% T4 d6 n
  75. *   如:                                       *
    9 S% q" y' k$ |! K$ k
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    $ O- J( g+ Q* P; m9 B
  77. *       表示为 2个GTD                          *5 j! }) m. q7 n. `$ f
  78. *                                              *! @: F+ U6 e! B% I4 w
  79. *    选择子为所在描述符内的字节偏移。          *
    9 x; s5 @) d" f2 u$ J- c" P6 ~
  80. *                                              *9 F: z" {7 }3 j! [- `* J
  81. ***********************************************/: W0 L* d5 t1 V0 j4 x. O/ w- r
  82. void set4gb(void)* t+ c: q) p( y) f" m* N5 X+ R
  83. {
    . V) C! K! ~1 K6 {3 m3 E4 }; @2 S+ U
  84.     asm{' @7 H# N3 v- y6 f
  85.         cli" R6 U/ H- m6 P
  86.         /****************************************
    6 V7 d& ^; m* E
  87.         *    GDTR寄存器                          *
    , N; R2 r; _& D2 e& g4 ]
  88.         *    +-------------------------------+   *- Z3 V# d$ Y4 y- M
  89.         *    |   32bit基地址       |16bit界限|   *
    5 z" I/ s6 ?2 L. b1 T
  90.         *    +-------------------------------+   *& v7 E1 f* e5 y! s8 V5 {
  91.         *****************************************/
    8 y4 {; D) p9 a( v* k& u2 }9 |7 s
  92.         /*********************, x3 z/ t! A% o% B; ]4 @% X
  93.         *        得出段界限       *
    9 t/ k" D0 F+ D! ]/ H# C4 l. ?0 w
  94.         *********************/
    $ X: r; j6 `* f) S$ H7 H
  95.         mov        word ptr GDT_Addr[0], (2*8-1);) j7 l; u+ b6 x8 n  e/ b
  96.         /********************************************
    9 F6 c+ `$ B+ y4 r; o9 p9 Y5 P/ \1 L
  97.         *    计算GDT表的32位基地址,存入GDTR        *1 g# ^5 ~% c; m9 A  R8 l
  98.         ********************************************/* ~0 Q0 f' N$ `( b3 N
  99.         mov        eax, ds
    - i1 E7 x7 ]  P
  100.         shl        eax, 4
    ! A, G8 x  }5 W* a- i% r
  101.         xor        ebx, ebx
    - ?( X* s" {5 k$ b
  102.         mov        bx, offset GDT_def. k) ~6 q7 ~3 u! @2 k& D
  103.         add        eax, ebx
      S8 D  Q3 D5 O! Q
  104.         mov        dword ptr GDT_Addr[2], eax5 P, G0 ?! W$ |; h7 ^6 O+ h
  105.         lgdt       fword ptr GDT_Addr
    : M0 E4 u! N! X7 F/ `
  106.         /********************& o( f: t1 P) h6 ?8 N/ X  P$ C
  107.         *   选择子偏移      *
    6 `5 H8 s* ?" ~1 R6 G7 p
  108.         ********************/7 y7 j1 m& t) i# ?" k# @8 j3 u
  109.         mov        bx, 8& M: z& [7 w2 B9 S
  110.         mov        eax, cr0# ]: M$ c; U. K6 @, D: W! U
  111.         or         al, 1' O8 {4 Z, b, u# [' K/ |
  112.         /**********************5 \/ a9 E' h$ j/ Q9 V8 A0 B$ [
  113.         *     进入保护模式    *
    ' M& D( u" F3 N8 B% |& K
  114.         **********************/
    6 c. E" E" W/ Q
  115.         mov        cr0, eax
    * [% D- q. B3 `
  116.         jmp        pMod
      p" }& A9 e3 h
  117.     }
    % t6 ?0 v1 U# C5 h9 `5 u8 C

  118. # P0 |3 r% t- W/ O* q% X& s
  119.     pMod: asm{3 [5 |6 p  U7 ~) o
  120.            /************************************************************
    3 S% H) @. K* r
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    & T" h% [) `- C* Y# d% `
  122.            ************************************************************/3 ^6 k; l2 B* U2 D0 j( `
  123.         mov        fs, bx
    3 T( j# Q) z& C# r5 z! L& B
  124.         mov        gs, bx
    + B. J4 O2 ~  \
  125.         and        al, 0x0FE' g" j* ?" p) X( ?7 P) t+ g
  126.         /******************. L! E0 N* m) V5 {+ v/ P% `1 q( R# C
  127.         * 进入实模式      *- f  P  m/ ]) k8 p6 S
  128.         ******************/& y- V/ G. D/ ?
  129.         mov        cr0, eax
    * r0 H, \: n' n2 M
  130.         jmp        rMod' Q) D4 i( n* o% y) E
  131.        }
    2 k* K% T6 u& d* b* N$ z4 J

  132. $ V9 m* T) q; d% T% A
  133.     rMod: asm{
    $ M# O6 |7 M6 a) m
  134.         /* ******************************************************************0 M: [  r% `8 n, ]1 b- P/ A" W
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    4 s1 L0 F' o$ H6 c4 ~7 N
  136.         ********************************************************************/
    1 e0 D7 F/ q  x
  137.         mov        ax, 0) E' o. I- T: l* Q0 a0 T. G' G* K
  138.         mov        fs, ax1 z) D+ d* X7 @+ `6 G
  139.         mov        gs, ax
      k. u1 ^9 G* L* u' [3 J4 ~
  140.         sti2 ?+ M$ g) Z% ~& B" n9 G
  141.     }2 T2 [. [* h' b5 E4 Q% y9 q! ?
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    6 q9 N7 f, g/ I- J2 X" P( P- F
  2. ;*    File: DOS4G.asm                                                *
    / O+ W7 }' c& p) R. o
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *; x! Q& }9 w7 O2 P$ P6 @1 I
  4. ;*                                                                   *; a. d/ R8 @* o4 ]* n
  5. ;*    ========================Title===============================   *( n: h: T  d3 T" H  F& d- O
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    ' P9 H4 X) X7 u, F) k$ u- x
  7. ;*                                                                   *
    , N  [9 G7 g4 T) a
  8. ;*   ===========================History==========================    *" r4 e- M0 m0 ?9 u* N' L
  9. ;*    author: bini                                                   *" x  s  i7 s) d& ]2 ~
  10. ;*      date: 2008-10-08  Frist version.                             *
    5 u) ?" C+ v; [  U/ X8 m3 n
  11. ;********************************************************************/ " A, S) j+ d& W5 i9 f
  12. .model small
    - @: Q9 C1 R! _; W8 q& L$ B9 }* Z
  13. .586p
    5 U* o" P* z  ]: R+ c# ~
  14. 6 @- Q+ w/ N$ Q5 G! k1 w: p
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    : z% [( y6 r4 V7 ~' ?0 x, X5 z6 c1 q
  16. " D! Z0 K+ o' P2 L5 ^
  17. DESC            STRUC% E+ z: X3 w) {( d4 q; ]
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    ) Y4 I5 R2 p9 ~9 \5 X
  19.         BaseL           DW      0 ;段基地址(BIT0-15)0 i$ C/ @3 V; O( h
  20.         BaseM           DB      0 ;段基地址(BIT16-23)& u/ H; Q9 V' d1 g
  21.         Attributes      DB      0 ;段属性
    9 v3 O8 ~$ D* n7 ?% R# ^
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)5 k7 r1 x# L3 Y# l: ~
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    2 K% M1 u3 \' r) j- a1 L" w  o
  24. DESC            ENDS% G8 |) k/ k9 m: S% j$ q: Y

  25. 0 e: A! ], M$ |5 {* g. F4 y# V
  26. PDesc           STRUC5 A/ [+ F9 U: X! B9 O1 }& V6 m3 e6 ^: [
  27.         Limit           DW      0 ;16位界限
    7 _9 |0 u5 n9 E8 _
  28.         Base            DD      0 ;32位基地址
    7 k' Q! y" ~. Q2 _
  29. PDesc           ENDS
    9 E8 V0 _. ?$ k# k# y

  30. 0 {  L, T7 S* _7 `$ G$ R6 N3 K6 g
  31. GDT_def         Label   Fword
    7 `* o) m# t1 w8 z2 U5 H7 z6 c. u
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>4 R( b6 L6 K" W& e$ p8 o4 s
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ( m; f" S. f% [# _) ?
  34. ' k" @- Z! X: n9 z. A  E. i
  35. GDT_Addr        PDesc   <$-GDT_def-1, >9 M* h" r! X4 {- ?2 U
  36. DSEG            ENDS                          ;数据段定义结束
    5 f+ a+ e' _" E4 P3 g* h% P. e
  37. 8 q7 G' w! s1 ?7 M) T# ]. O4 `
  38. CSEG            SEGMENT USE16                 ;16位代码段
    6 E0 S! S3 N* M9 f5 ?8 |' u1 a
  39.                 ASSUME  CS:CSEG,DS:DSEG
    : v2 ~. L7 q& @/ \. {+ U" x" X$ Q: S
  40. .Startup
    # M& J4 x* G1 Y, a8 A4 r# Q
  41.         call      Set4gb
      k8 O* V4 p0 \* R$ Y# C
  42. ;
    , N- G" f! l! p3 D
  43. ;       fs, gs即能访问4GB空间8 W3 y" q, v! c! e7 C# x8 q
  44. ;       write your code in here.9 e! w* S- r( Q' f) v3 j! q. B2 b, e
  45. ;
    ! y$ i" W! G# }- N. v4 R
  46.         .exit
    , R8 _/ F: X, Q' R" _* J
  47.         
    7 w' T( R. E) p" J1 s( ]7 r5 H$ `
  48. Set4gb          PROC      NEAR" b5 W* D7 c7 `6 x  H" }$ s
  49.         in        al, 92h7 o4 _9 U6 h) C% c5 T* D
  50.         or        al, 002; l) I2 Q0 c" y( x1 Z) l
  51.         out       092h, al
    0 L8 q# J" f; o6 q  K) ]' `
  52.         out       0edh, al, h+ ~% o3 x5 U- ]

  53. ! W  g- r  |0 O, N% n6 M: z. W
  54.         cli6 G- p2 P  h/ \6 s* N% \* m5 V

  55. 0 R. J8 J$ I' \0 e) u  o0 J
  56. ;        mov      word ptr GDT_Addr, (2*8-1);! G3 {2 {% T. @- o* j  {- h
  57. / H& o5 t8 e7 }8 M# b
  58.         mov       eax, ds; }5 |9 x- k" f8 C  V
  59.         shl       eax, 4. [; K% R0 ?4 N& n& F% q
  60.         xor       ebx, ebx
    8 X9 n! _. g# Z( ^
  61.         mov       bx, offset GDT_def
    * e5 Q+ e+ e* f* Y7 k
  62.         add       eax, ebx9 w* l$ k$ T% w6 y$ L
  63.         mov       dword ptr GDT_Addr.Base, eax, h% o8 u/ a% O- _3 f. @; \) S9 p
  64.         lgdt      fword ptr GDT_Addr
    4 C9 }7 A% D4 `! X7 D( T6 L  L0 {
  65. - v# h6 R, H! U" H' Y5 ]% G
  66.         mov       bx, 81 X" m3 ]# X3 ~4 Y* T. p  o4 f
  67.         mov       eax, cr0
    # w: T: U2 i8 r; Q1 W
  68.         or        al, 1
    ) e: _- ]% j7 s0 F% I# D# G5 a. q1 z
  69.         mov       cr0, eax9 c  j2 x1 j* V) A
  70. , f) o. Q2 L& D7 r6 \1 S+ p
  71.         jmp       pMod
    . ^/ C8 ^8 {! u: i6 J: U
  72.     pMod:
    " ^; G  s- p* t& w4 Q

  73. 5 t& J4 I/ u# {: u! Q! C' R' q
  74.         mov       fs, bx
    6 l% [8 `- `* u# B3 D4 ?
  75.         mov       gs, bx  L0 z. Z4 Y" v2 n+ a  [
  76.         and       al, 0FEh
    8 Y8 u; \9 x: \& _
  77.         mov       cr0, eax
    $ B6 o9 t4 L: b6 J! Z! @. N* m
  78.         $ i, U, d- ?% S& g' n8 |
  79.         jmp       rMod4 s; I4 e# @8 i* x4 Q
  80.     rMod:! E+ p$ Z0 {/ y- O1 ?; I  {5 R

  81.   E8 `. x# v- @1 p/ n
  82.         mov       ax, 0" R: q7 n1 v5 M+ F( c! E/ P
  83.         mov       fs, ax
    / u0 ?# A" O9 R# T' `" @
  84.         mov       gs, ax
    . p- O8 t7 y1 P% |) y- M
  85.         
    7 C1 z3 @1 g( q1 k
  86.         ; 在2M的位置测试写一下数据
    $ _, t) A7 t! L# X: ^1 X
  87.         mov       esi, 200000h, Z: q3 p! K7 h. i
  88.         mov       dword ptr fs:[esi], 055aa55aah
    + T; l- M& o' m1 q# V
  89.         ; 用RU去看看200000h的位置是否是此数据....( A' d6 g9 Q: k1 N; z* n
  90. " A# p& ]6 j# J  N. @6 r* M
  91.         sti% J6 _% }* S( I$ J0 t3 F
  92.         ret9 Z  w' p. [9 H& \, f* D
  93. Set4gb  ENDP
    0 m2 ?# b; z& V& J# c
  94.        : B1 t0 L) ?& j2 B& E1 P* p! N5 Y& W
  95. CSEG           ENDS                              ;代码段定义结束
    " p4 C$ J7 y3 @9 z( X* v
  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选 803863 V; g& o8 x) m
& o% A2 e6 R8 M* b) ~
option->compiler->code generation中的option选中, [X] compile via assembler! ^: |6 S! P1 Y( \7 b
" D  z& w/ Z* G7 O, u; h
[ 本帖最后由 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;$ w/ z' L& G, o) D
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;  f$ l3 x; S" m
4 b/ N+ V- C7 ^. U
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
1 T  T0 [( w( t+ }& _3 h! T 替换如下,& g7 ^' n8 o+ t" V
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>9 l* ?4 P. S8 B; n) b; m: O
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>% k, K- f: I- g8 R$ j9 }

# }! W* @* y1 [: uGDT_Addr        PDesc   <$-GDT_def-1, >
, W5 e- R- p, u6 `这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
4 o* `# h. L; i5 u: koption->compiler->advanced code generation中的instruction set选 80386' E1 O- T+ i& f9 N

" `+ J7 w3 R; x3 b6 y& loption->compiler->code generation中的option选中, [X] compile via assembler

+ a+ n) [, q$ K; ?1 o9 a7 L$ ]5 B; Q   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 8 F. a$ W  X! W# u) |1 Z' c

5 k9 k3 \" V" K3 Z. a   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
) q7 V2 B- E% n& K5 F% K6 X
5 o' {. `: s# y
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 07:59 , Processed in 1.500942 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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