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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。- o- x' I; v- a8 x# t7 l8 K

; m) i" d4 K6 E. E( h这是C的
  1. /********************************************************************
    , J' l5 S2 |7 B
  2. *    File: DOS4G.H                                                  *
    + a; d+ Z& B7 R" J- v
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *5 [3 K* U. M, P& D+ P& l0 y
  4. *                                                                   *; f7 C: m9 r$ K0 G1 C
  5. *    ========================Title===============================   *0 t/ \( b' b$ u( S5 O0 O; B
  6. *        这个函数是让系统进入DOS 4G模式                             *4 w/ t. s4 a, p% T
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *. a1 d. T/ Q5 O4 a! J( ?
  8. *                                                                   *
    0 L! G! Y# {- I
  9. *       使用: openA20(); set4gb();                                  *9 `" S* L7 Y" _9 z( A/ r* L4 @' u
  10. *                                                                   *# {. O7 i! I* K+ S( c0 L4 H% D
  11. *   ===========================History==========================    *
    3 C8 u. _1 L$ H" f) S" s. S
  12. *    author: bini                                                   *
    8 j9 `+ W# s1 }  p7 `9 h
  13. *      date: 2004-11-30  Frist version.                             *8 c7 a$ z" G: T& j: s1 y& w3 W
  14. ********************************************************************/
    ! m5 Z6 R2 y$ e1 z' c- S' b

  15. ! U! n+ U8 m: M, Y& ~' j1 A
  16. #include <conio.h>" N( E9 B/ L% V0 }# o  l1 d% F
  17. #pragma inline
    ! I: O3 v8 B$ Z- {) y
  18. 0 Z6 k% l% W8 E* F7 l% p: P
  19. /***********************************************) N1 c4 v) o2 j3 j1 p- ^% I
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *
    ) o; ?- v( d& r1 R+ Y
  21. *    第二个为一个数据段,没有代码段。           *) I: c# A* o" q
  22. ***********************************************/
    5 u) _: {8 ~6 u4 f" C
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    ( ?3 f5 D) R" H/ t1 T+ {
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    4 k& ^7 {( j% @3 v( Q- K
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    ' l  t9 N- d$ k8 H. ?0 }
  26.                                       */6 p) n. ]+ \$ a! s' j, W" v
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )+ c! ~( D: h" g3 P
  28.                                          最高字节为 base( bit 24~31 )
    ' |5 n$ E9 d: u! x
  29.                                          5 F4 W; J) g) g: F% e
  30.                                          属性Attrib = 0x8F92
    9 H% k. g( r& I) H* Z" M' t
  31.                                          
    $ k* W7 \: ?0 j
  32.                                              属性位Hibyte低四位为 5 H7 i0 l) |: X, P5 y+ f$ k
  33.                                                  Limit( 16~19 )=F* h2 ~& O9 x1 L; s
  34.                                              属性位Hibyte bit7 为粒度
    3 L7 I; k' H, b+ K6 E: D2 b8 l' {
  35.                                                  (值1=4KB粒度)) p2 I% j* G3 [; @$ O
  36.                                                  8F & 0x80 = 1
    ) D1 A7 {6 B# c7 q- Q
  37.                                                 
    . {, Q4 Y$ ?' i; d2 m
  38.                                              属性位Lowbyte低四位为段类型,值=2
    ' c. G8 Y; Z: {" N: w
  39.                                                  表示为可读/写段
    ' g: n( E$ H6 }; C# ^4 k
  40.                                              属性位Hibyte高四位=9,bit3=1表示:, M6 h+ c6 s5 T  {+ B
  41.                                                  描述符对地址转换是有效的。9 g4 p( g3 U2 ?. _) Q- ?
  42.                                                  bit0=1表示为:
    - h2 n. s& \* x  H6 s
  43.                                                  系统段描述符。而不是门描述符。
    3 y  {2 s+ {5 o  p
  44.                                              
    1 o( I& X  Z. l* X, ]8 {0 b5 ~0 _
  45.                                          *// x+ v  K# r1 n8 Z3 g$ A
  46.   S, @5 q6 @$ n5 g0 [
  47. /****************************************
    3 k: x3 M& y, ?8 {8 p  x( b
  48. *    GDTR寄存器, 48bit=6bytes            *
    ' {9 q, Z2 P2 j7 R% I
  49. *    +-------------------------------+   *5 y7 y7 ]# a  ^6 n+ A
  50. *    |   32bit基地址       |16bit界限|   *& O$ C$ L" `4 [; h) g0 Q- X) n
  51. *    +-------------------------------+   *
    * z& B! ]# o4 R' t
  52. ****************************************/
    1 @6 `/ G% F6 Z- Q$ \' H6 q
  53. unsigned char GDT_Addr[6]={0};7 z, ~/ h8 g; Q- B+ Y# v2 k8 Y
  54. / F  G, J0 \; W; x. J
  55. /****************$ j6 }0 Z$ R9 E5 J. p) N) E
  56. *    打开A20门    *0 }- \: i9 U7 P7 [9 ~6 X; y0 H
  57. ****************/) P6 O2 g/ L$ o, J( _' k0 H6 R
  58. void openA20(void)4 `) \  n8 `& e5 w3 I) }
  59. {$ O! @; a. \* m) a" M7 y; y
  60.     asm{
    9 R0 s; b* X4 l) H' F0 `# c! Z8 y
  61.         pusha" }+ i% v0 H# E7 m0 @! w  ~
  62.         in         al, 92H/ P% x. @8 O3 y3 z
  63.         or         al, 0x026 y( k6 _, M+ n) S2 g$ [. A
  64.         out        0x92, al
    ! n  ?* `9 C- E  r7 {1 I5 R
  65.         out        0xed, al& T- K. c, u6 S
  66.         popa
    % J1 O# y+ l1 T+ _* k" |
  67.     }* J& z6 D1 k9 c3 E6 K# h0 N8 i
  68. }3 @! ^  G) a: _7 x8 I

  69. $ V" y' }% {( M: J/ H  h6 E
  70. /***********************************************) n5 T" v8 ^! ]( j
  71. *    函数功能:进入DOS4G                       *
    3 X. G2 l, D1 J* l( ]8 n9 O
  72. *    ====================                      *
    + v- {1 k5 V/ t1 \* A5 u
  73. *                                              *9 d3 N$ Z  M, U
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *8 I: X: K% _3 c8 C
  75. *   如:                                       *, j% m( Y4 Q9 ~' p3 S* L
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *% |0 W6 f' [1 y: [  y! Q
  77. *       表示为 2个GTD                          *
    * ?! T. |7 Z" F6 e: ?
  78. *                                              *8 K) ~& n7 ?- ?. J2 v
  79. *    选择子为所在描述符内的字节偏移。          *+ ]7 C9 ?6 _/ n( b* O8 l. W
  80. *                                              *5 }, S  g; A2 K
  81. ***********************************************/3 o$ w( \) h7 M: Z
  82. void set4gb(void)
    # n1 l  H' q/ X8 `7 W
  83. {3 F; i% D9 v+ K) o' b( c# o
  84.     asm{
    * f8 F& N+ c- o; y5 [6 p
  85.         cli
    0 v( H* W4 J/ s7 K3 J) r
  86.         /****************************************9 s. p& o) }+ r- h' U4 Z
  87.         *    GDTR寄存器                          *9 v. i" y4 }$ B, V
  88.         *    +-------------------------------+   *% [6 h2 ^" R0 q
  89.         *    |   32bit基地址       |16bit界限|   *
    ( j0 n9 c$ o: _2 x
  90.         *    +-------------------------------+   *
    5 n0 s# e: G1 u# v. P6 _, l
  91.         *****************************************/
    % U2 h. D+ O% u8 O0 T& V# r# R
  92.         /*********************. Q. q8 ?0 @# e& q% E
  93.         *        得出段界限       *
    ; |0 P9 s9 x$ h" k
  94.         *********************/
    - G- c" H( a& L. Z
  95.         mov        word ptr GDT_Addr[0], (2*8-1);% m1 }+ z) Y% h; ]6 j1 L7 W9 i4 O
  96.         /********************************************
    7 c& o' t& t1 W- |( x0 Y0 t* m
  97.         *    计算GDT表的32位基地址,存入GDTR        *) A. d/ }5 d& I6 r
  98.         ********************************************/" x5 ?6 b! V$ K8 l. N- j. i
  99.         mov        eax, ds0 L6 Z* v! }, P0 U' Q
  100.         shl        eax, 4% L# w& d( q7 P3 R
  101.         xor        ebx, ebx
    $ X3 ^+ P6 D3 z/ ?
  102.         mov        bx, offset GDT_def
    - o# f, D& d' [6 O8 }6 G% t
  103.         add        eax, ebx
    : t6 g: S3 M2 ?$ s+ \
  104.         mov        dword ptr GDT_Addr[2], eax
    & a8 `. J; V& J3 s. h) {: r6 A5 H
  105.         lgdt       fword ptr GDT_Addr
    $ H' {! L6 {; Z) I! b5 ^
  106.         /********************1 g9 y) [$ |9 E, Y3 k% [
  107.         *   选择子偏移      *
    8 t: z& Z- h2 j5 W: }  I
  108.         ********************/
    0 c9 L% e  F" I7 T9 U* B, i9 b* ?3 h
  109.         mov        bx, 8
    + _, G  E  p: Z; ?
  110.         mov        eax, cr0# J! F/ D  F8 i" j; h
  111.         or         al, 1
    ' J/ f5 Y4 r4 u$ Z$ p  T
  112.         /**********************' f! d* k8 V# |
  113.         *     进入保护模式    *
    4 o/ }" ~3 w8 `# D3 E( a; N) y) I7 u
  114.         **********************/  M/ V: l  l/ K* N3 a: e5 }
  115.         mov        cr0, eax
    3 @7 ?0 ]& w7 s" l
  116.         jmp        pMod
    " z& Z9 O8 _  S( _/ R/ M
  117.     }- @6 G- G( ^( n  m9 |

  118. * q! \% C, @9 ^5 y, J# F  c) I
  119.     pMod: asm{
    3 {( W" X- w& I0 {
  120.            /************************************************************
    " k) r; C% ^; U- A$ z
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *8 L1 \2 X# K' K8 B& A; ]
  122.            ************************************************************/+ C) N8 |- [3 e$ A
  123.         mov        fs, bx
    2 `" q- r1 u& f3 E( g
  124.         mov        gs, bx9 U4 w7 l* |2 Z7 Q0 E6 G' n1 A2 P
  125.         and        al, 0x0FE
    8 }8 h: B( M$ ^/ C+ Q+ A
  126.         /******************! I, ^3 m6 H, f9 K# ^, m1 `
  127.         * 进入实模式      *
    . s1 t$ k0 ~; X
  128.         ******************/, A/ }, i2 Z3 w7 I7 L
  129.         mov        cr0, eax' Y% [+ {- W) u1 D
  130.         jmp        rMod
    4 p7 s# p+ R$ q0 h  {( C# K
  131.        }4 D% |; _, F4 M& {2 \
  132. , z: }, n- w, ?' D! @) L# n/ M
  133.     rMod: asm{
    . q: D8 s9 w* G& Q! B/ ?) T9 I
  134.         /* ******************************************************************
    : Z) h8 A. Z- f0 v: k) R
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    * T) o- Y+ d2 v' k; W7 P
  136.         ********************************************************************/
    2 Z+ u1 J+ n  D+ W/ g. K  E
  137.         mov        ax, 0+ d5 d; y" {+ z( K/ s' \' Z6 |3 h/ ]
  138.         mov        fs, ax* T0 _0 y2 M" W
  139.         mov        gs, ax
    . V4 |$ J, ^6 D, a! a) i" @
  140.         sti1 f$ C" T' \" ?
  141.     }
    / M- y7 ]8 b" h' w
  142. }
复制代码
这是asm的
  1. ;/********************************************************************3 j9 ~' m+ a- S! Q. D: A" A
  2. ;*    File: DOS4G.asm                                                *1 D* `- R. [+ ]# `5 X
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *, a5 C. |' ~2 W& b& g9 d% H7 K
  4. ;*                                                                   *
    ) g, K2 O: A. N% z: T4 e
  5. ;*    ========================Title===============================   *
    7 v7 C1 M! f2 v1 ?7 s2 t) W
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *7 k# M6 x' u9 H" a
  7. ;*                                                                   *
    9 M2 {% V3 Z: I" j9 z
  8. ;*   ===========================History==========================    *
    1 X1 R9 l+ l" }, j  \' r/ w) f& ~/ `$ n
  9. ;*    author: bini                                                   *' C6 s& e  }% c, u, V
  10. ;*      date: 2008-10-08  Frist version.                             *
    " v8 k6 m9 g) ~0 l, Z% H
  11. ;********************************************************************/ / \7 H. c, E1 f5 c% q4 r  k
  12. .model small% C/ w' e/ F/ P0 H& I, v9 |- B5 A/ f
  13. .586p$ z- d& ]. k; d$ u' G. t6 j/ j6 S

  14. 0 t. P1 J1 y) G5 `4 w
  15. DSEG  SEGMENT   USE16                 ;16位数据段) O* W* x9 [4 d: I6 e! \4 s: W; f

  16. - P4 A9 h5 k3 h; \- h  }
  17. DESC            STRUC
    ; u. J& d; X3 ^
  18.         LimitL          DW      0 ;段界限(BIT0-15)% |6 h& z. n$ A# n
  19.         BaseL           DW      0 ;段基地址(BIT0-15); U" q# q/ z& g# R& j( [
  20.         BaseM           DB      0 ;段基地址(BIT16-23)) y) n6 j; z0 w5 P* a, U
  21.         Attributes      DB      0 ;段属性+ N% k: R1 f) k+ ]5 A) E
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)7 a% n; L0 Y- s7 e2 N8 t7 g( M" O4 g
  23.         BaseH           DB      0 ;段基地址(BIT24-31)0 Q" k; j6 g; b! U- P
  24. DESC            ENDS
    : ^, y5 e2 }, d9 Y( m

  25. * ?+ {& a+ t4 f* j' W/ U" ~; N8 N+ N
  26. PDesc           STRUC1 N8 m7 g. o6 y. f2 P" w- Y
  27.         Limit           DW      0 ;16位界限2 ]- @. b9 j2 z# _3 m" e. g
  28.         Base            DD      0 ;32位基地址% N9 t1 h% {8 V0 q$ i3 s
  29. PDesc           ENDS  ^2 ]; j' s! \2 X  B) {
  30. 1 Y, k; \: z* f% O# ~8 k3 H
  31. GDT_def         Label   Fword
    + u( H+ V0 g; q0 R- u' q9 ^) u
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    7 f0 l3 C. Q- [* ~' L$ A
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ) d2 v1 Y9 B0 I( P) B

  34. 8 C1 ?) j7 I# w0 S
  35. GDT_Addr        PDesc   <$-GDT_def-1, ># y  N# d# ?; \* K5 }1 z9 s
  36. DSEG            ENDS                          ;数据段定义结束8 I" a+ a# }" l

  37. 2 R* v2 d; N  i$ t* [# S) _$ _
  38. CSEG            SEGMENT USE16                 ;16位代码段  f2 S/ H" m9 B, L0 D
  39.                 ASSUME  CS:CSEG,DS:DSEG1 @) F( X7 A; x! y7 o
  40. .Startup+ Q1 G7 E" `+ j" |! [
  41.         call      Set4gb
    ) k; b  n' S" X7 f; B
  42. ;
    0 x. e$ j  a. M! X$ Z
  43. ;       fs, gs即能访问4GB空间3 R& l- [1 R! E) m8 D: M
  44. ;       write your code in here.' [9 C+ B7 ^6 g* x! {" D2 b. _9 n0 |* C
  45. ;' q" }8 I! \. o. a0 L3 I# F" o7 h
  46.         .exit
    ( L( ^- U) b! n
  47.         0 h# ?( Z! b% E
  48. Set4gb          PROC      NEAR
    2 t$ Z* }4 G3 B( Z, r! C4 J' w( k3 n( |
  49.         in        al, 92h& ~4 o; p8 I% z4 ?1 ^  v
  50.         or        al, 002
    ( ?7 D6 P: G, M/ r, s: [
  51.         out       092h, al
    4 m$ `& v$ b; l- P
  52.         out       0edh, al" Z  m- D1 b, F9 j% {; d( m* A5 K

  53. - r5 ^1 v. W2 x, r
  54.         cli
    ) m+ A2 s% w2 B
  55. $ G) e- \! x3 W0 ~* |$ J* Q* @. a
  56. ;        mov      word ptr GDT_Addr, (2*8-1);" P0 r5 t( R  v' }1 C8 w
  57. 6 S% V# q/ V+ s0 x$ {: G
  58.         mov       eax, ds; j" s& l" m" |- B, H
  59.         shl       eax, 4
    ; C7 M, K" }6 j! Q/ k3 D5 g
  60.         xor       ebx, ebx+ d7 q, y% g( v4 v3 |
  61.         mov       bx, offset GDT_def5 R" v% L& O3 [$ a4 m# m9 H
  62.         add       eax, ebx
    * ?5 O3 {; X& U: |  l
  63.         mov       dword ptr GDT_Addr.Base, eax4 [$ M3 W, `2 @  C
  64.         lgdt      fword ptr GDT_Addr" H8 x! h4 b, t! ?1 s
  65. + ~% `3 h9 |9 f
  66.         mov       bx, 8
    - S  N+ a  U$ z/ ~4 E3 _. a# }' t
  67.         mov       eax, cr0: R8 k+ Y4 v4 m5 o6 {
  68.         or        al, 18 L6 x1 q, m8 z* l2 j* N) z7 g! B
  69.         mov       cr0, eax' i2 Y3 ]! W: o$ ?* g+ j+ n1 g' }

  70. . L' n* J! e6 \4 W# r5 X# O
  71.         jmp       pMod
    3 G) r9 n1 o% g# u% E
  72.     pMod:
    & ~6 {5 h1 ?- l7 r9 a
  73. , X$ ~4 k, p' ^8 D: E: _/ V
  74.         mov       fs, bx+ ]' b! d6 o8 l, c3 H7 ?9 l6 S0 s
  75.         mov       gs, bx8 c. c6 V& q. p, D7 D( h2 m. m
  76.         and       al, 0FEh# m% V. G. d, O
  77.         mov       cr0, eax( r3 I1 p9 H' r  R
  78.         , d! F- f/ ^6 L+ N6 ~
  79.         jmp       rMod
    ; _* O- R7 t9 f4 f2 s) x
  80.     rMod:7 ^' k5 ^$ u5 B4 q: W, E
  81. 1 ?8 G* e9 x4 m+ Y
  82.         mov       ax, 0, V$ W4 G6 Q- R2 O7 i4 O' I
  83.         mov       fs, ax
    4 {- r" e: R# T7 i1 D" t7 ]8 `
  84.         mov       gs, ax' |  q6 n  Z: k
  85.         ( h* Y) u. ?  `/ N$ j. Y
  86.         ; 在2M的位置测试写一下数据
    3 ]0 o/ V+ d' D& }' F7 F4 d4 n
  87.         mov       esi, 200000h
    1 ^* J) [% d- \7 s7 Y
  88.         mov       dword ptr fs:[esi], 055aa55aah3 C+ D- e% V6 W8 z' h+ Q2 z
  89.         ; 用RU去看看200000h的位置是否是此数据....* \1 B3 R, M0 e& e1 ~% Q9 c
  90. - q9 ~$ V' P4 n6 j4 T. P0 J
  91.         sti* |& o, S  X3 y& ]
  92.         ret
    & W, l8 L0 c$ d' Q4 c$ q
  93. Set4gb  ENDP
    + f! H& m0 ~  E: J. S) b, W8 Z$ ~9 D& d
  94.        - K$ \+ D6 ^4 i
  95. CSEG           ENDS                              ;代码段定义结束
    . M* }1 F# W# a
  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
. r3 L2 m' u4 J9 K9 g* ]3 y& Y, ], b
option->compiler->code generation中的option选中, [X] compile via assembler! \, U) B9 s. I" U1 V
* U/ k' F7 k& x/ Y2 H" s: c+ N
[ 本帖最后由 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;
$ x: q5 `- P/ s. C( cData_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
# k: l9 J9 E+ r* g7 b/ k- N8 V
% T* i% K0 u$ r$ _. G0 s* I! ?) Q6 w- ]GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;8 T6 R( }. {# W+ t% A
替换如下,* E, d1 R, o- T+ o
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
5 ^+ B) @* a, z% z" R" EData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
; L2 K- S8 }% s' K# _5 [# c
) A* g( M+ O  H  E" SGDT_Addr        PDesc   <$-GDT_def-1, >
/ ~4 R9 f5 I, t+ K这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
8 ^/ Q  N% U- Xoption->compiler->advanced code generation中的instruction set选 803861 ~* D' b/ {* W, j  o

- O/ r  _! B( [/ G, t; G/ ooption->compiler->code generation中的option选中, [X] compile via assembler
0 [- R. s+ T  ?6 h4 w  t, f
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
7 L6 `  K9 k8 ?9 V) m5 M( C1 Y4 c8 `0 K; H( Q
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
1 Z* D' s- Y9 n, V1 _! ]
) z4 U& a7 d* G% f
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 07:30 , Processed in 1.607095 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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