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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。
" j* x* s. W: X( W8 d3 u9 `6 h% w; K2 x: E% f, w; ^' Z
这是C的
  1. /********************************************************************
    ' S; {& J( X3 ?; `1 j# n" h  Q
  2. *    File: DOS4G.H                                                  *
    / h) B; t6 A; i+ M
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    3 A9 c) n4 E; j. h/ i; a( T' J
  4. *                                                                   *6 d9 C, {' h& W5 \; `8 C
  5. *    ========================Title===============================   *) Y' S. ~+ h: b- c- z. u
  6. *        这个函数是让系统进入DOS 4G模式                             *
    " l2 P2 y4 X- S# R
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    ( ^5 Z6 I' t* y# d
  8. *                                                                   *
    6 ?  K# B0 h6 E6 G
  9. *       使用: openA20(); set4gb();                                  *5 r  [1 ?: G( L% d( t
  10. *                                                                   *8 B# @+ s/ H- m) z& A* r
  11. *   ===========================History==========================    *- U0 q/ y' ]9 `, M- |. O
  12. *    author: bini                                                   *
    0 ~- k! J# _) J, U9 M
  13. *      date: 2004-11-30  Frist version.                             *- w  |9 r* F8 U5 ~
  14. ********************************************************************/$ o3 M% t+ w# A/ K2 l- {. F
  15. ! p( M4 t4 b0 h& E0 e1 m
  16. #include <conio.h>
    . _9 ]; P3 ~# e* c
  17. #pragma inline
    ' \- l- b0 f8 \6 i' ^$ H+ Z

  18. 2 S8 V* E( X& g9 u
  19. /***********************************************
    8 B- R8 {- v! {1 p9 j1 [! s/ W
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *1 D, e2 j& ?" e( e) O6 j" p' T& F: l
  21. *    第二个为一个数据段,没有代码段。           *
    ( ^* W: S* U3 d0 o
  22. ***********************************************/
    6 [. q/ U; ?* F/ o/ G7 q& I
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    7 U4 X; _; f, |6 x$ v$ ^; l
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    : \( d" f* l- h/ I4 C% t8 P7 E
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF % \; ^3 x2 v7 k8 F8 @
  26.                                       */$ K; ?8 U9 h3 F, i. H
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )' b0 Z1 m  R1 |/ t
  28.                                          最高字节为 base( bit 24~31 )
    ' [: c3 ^. F% M% f& t$ I6 V
  29.                                          
    ; S. s3 S! X0 f, X/ {
  30.                                          属性Attrib = 0x8F92
    * L9 Y6 l0 `- a; I" V: [7 X+ \' [8 Z
  31.                                          . b& w- O( e1 ^& _) K( D
  32.                                              属性位Hibyte低四位为
    7 H8 I  U. S, _7 A; V# s
  33.                                                  Limit( 16~19 )=F
    / Z6 R0 T! f/ Q" ?9 g, Y' V$ r( z
  34.                                              属性位Hibyte bit7 为粒度" y' {3 D8 c5 r* g7 ~! ]: }! u! d1 |
  35.                                                  (值1=4KB粒度)
    / B$ X2 z; [! Q, ?# t: ]+ A7 D' o
  36.                                                  8F & 0x80 = 1
    3 b! ^# M- }9 ^' r3 d
  37.                                                  7 Y& j7 l9 e  D0 C
  38.                                              属性位Lowbyte低四位为段类型,值=2  K7 H) H+ R6 l0 s% q# x+ s9 X7 G2 n7 V
  39.                                                  表示为可读/写段
    * F% R9 b0 ~8 n
  40.                                              属性位Hibyte高四位=9,bit3=1表示:& I; C. _* \/ A0 Y! [
  41.                                                  描述符对地址转换是有效的。
    ! j! E( H6 H) Y4 d
  42.                                                  bit0=1表示为:9 b0 i6 |# X; J9 |& T% u6 _0 e
  43.                                                  系统段描述符。而不是门描述符。
    ; i; S; ]0 V* B! @
  44.                                              
    9 l2 V. b/ ~  L  m* \7 F+ D0 g2 z
  45.                                          */* ~: u0 ?8 x6 n3 ]0 V( x
  46. 1 H( C6 K& c: F* R# w: ]0 n5 M
  47. /****************************************4 I% M. J3 e' ]: a5 D0 Z
  48. *    GDTR寄存器, 48bit=6bytes            *& m8 {. P9 H' a; r0 F$ q3 @
  49. *    +-------------------------------+   *
    ; S3 F! R/ e# h6 J# Q9 v5 h
  50. *    |   32bit基地址       |16bit界限|   *2 ?; Y4 l9 o$ R
  51. *    +-------------------------------+   *
      o- g4 p; e" m# \# J: s
  52. ****************************************/3 V$ \9 h4 x0 r
  53. unsigned char GDT_Addr[6]={0};# j4 M% o( C6 {, G: |6 u6 G
  54. 4 r2 n. N4 S' j5 @
  55. /****************: t! i" ~# ^9 I# T$ |: w; l
  56. *    打开A20门    *( v  I! X$ {1 _1 Q4 `
  57. ****************/. _4 _. t# h" M5 H4 |" I: H
  58. void openA20(void)) a( v# N- e; r
  59. {2 U$ Z7 l" ?$ v% f1 D+ c$ ?
  60.     asm{
    " g) D5 x: I( h7 V
  61.         pusha$ G- F' i, ?- t+ l. V6 ]
  62.         in         al, 92H
    & }1 H& ?( q1 c& K' d
  63.         or         al, 0x02, D  _6 f& r* N+ P
  64.         out        0x92, al
    3 ^9 ^, f- |- u$ l* ?6 F: Z$ \* W' Z
  65.         out        0xed, al
      x- o, K0 O8 F, N' x7 s$ n* a4 p8 x
  66.         popa
    % g% W7 ^' h: j9 ~
  67.     }
    ) {) N4 U7 h, `4 v% Y& h% g4 ]
  68. }8 F3 i# c7 f, E

  69. ! s5 i6 L' |5 a7 J* T0 w
  70. /***********************************************/ L. }0 k: |8 T) ~2 Q: k& N# `
  71. *    函数功能:进入DOS4G                       *7 Y) s. n/ Z* t8 k9 a
  72. *    ====================                      *, u% ~, g* Z! f) @
  73. *                                              *( h! u- [) ~* s( _  C/ j
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *( }( n; s- t: u/ }/ ^9 v) @
  75. *   如:                                       *
    , M% p5 _& B9 s$ s+ Z1 w2 y' x2 Q+ L# ?
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    3 L" w! u9 |& C: L4 ~
  77. *       表示为 2个GTD                          *1 z' s, p" O2 B5 c  ?) r0 a& a
  78. *                                              *
    % `& B, S* D1 ~. _% N
  79. *    选择子为所在描述符内的字节偏移。          *  S9 o2 \9 q6 V/ N- ^) u
  80. *                                              *( t- Y' Y0 A  \9 a
  81. ***********************************************/8 V- ^- O& S) N0 U1 P; l
  82. void set4gb(void)6 [, d( G5 X6 u% m5 m
  83. {
    % Z; V8 z  X! |
  84.     asm{
    ' m9 j1 s0 H1 ?3 G9 q1 S5 ^
  85.         cli8 G% [" y/ d) e- ~0 }  @. E
  86.         /****************************************
    & \6 F6 G7 R9 U* f7 T- W
  87.         *    GDTR寄存器                          *5 `& e/ S1 V5 M; _2 q5 {0 u
  88.         *    +-------------------------------+   *4 d& f1 o& K) n3 q0 d
  89.         *    |   32bit基地址       |16bit界限|   *
    3 T% M6 E# B2 J+ d1 \1 r6 A% |
  90.         *    +-------------------------------+   *  t$ [! [6 J( O: e7 e
  91.         *****************************************/
    / b- r- L1 ~1 M/ g, A
  92.         /*********************5 l! V* D2 `" |* d- F
  93.         *        得出段界限       *0 G( K8 V# i' h$ X" M: Y- d
  94.         *********************/
    ( v) ]9 \0 ^/ y$ g0 b- K
  95.         mov        word ptr GDT_Addr[0], (2*8-1);# f7 l) |, U( H
  96.         /********************************************
    ; ]4 [7 O1 n2 n/ [+ Z- h
  97.         *    计算GDT表的32位基地址,存入GDTR        *& S4 k* v6 `; T- P& p0 J' O
  98.         ********************************************/
    % F- W! ^& O  E" {
  99.         mov        eax, ds" D5 P% p: @+ ^+ A% R0 D% B1 h
  100.         shl        eax, 4
    1 a/ F( s/ Z9 O+ `+ Z+ v
  101.         xor        ebx, ebx
    , z6 h" Q6 m) `
  102.         mov        bx, offset GDT_def5 H1 X* Z3 v/ U' r8 E" v4 G& K
  103.         add        eax, ebx
    5 y& Z6 b6 K5 g- g- i
  104.         mov        dword ptr GDT_Addr[2], eax
    ( L1 I' l+ I" s# o
  105.         lgdt       fword ptr GDT_Addr2 v3 z$ `# u) V- u9 [/ G6 {$ H
  106.         /********************) ?5 _1 r. M9 C
  107.         *   选择子偏移      *
    % k/ K& i6 @( p, \; F) w) o
  108.         ********************/2 [8 e0 B; g, l0 ?3 }2 @
  109.         mov        bx, 8" I$ f' ]9 B$ ^8 T* M+ b( {  E, k
  110.         mov        eax, cr0
      c: T! N6 s. q: T$ ?! `
  111.         or         al, 19 }0 C5 n2 A/ }% {- k& m$ D0 H
  112.         /**********************
    ( y6 n2 Y0 X. P) o
  113.         *     进入保护模式    *0 S3 z8 H% S6 v  L5 R7 I
  114.         **********************/
    * I' g# `. y" t. _7 A- s5 G# T& |
  115.         mov        cr0, eax+ q! [( x$ @* J1 _
  116.         jmp        pMod/ ]% _. I& B7 m" y1 `+ U
  117.     }# }4 M! f- H. r5 A: n* E0 ?+ W

  118. 5 o% v, y1 g: I* |
  119.     pMod: asm{3 c. [* h  g6 G* b& e; g+ i, Y
  120.            /************************************************************& k! F0 }, c" G6 y" J" M
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    , M' L; L* _( t5 `
  122.            ************************************************************/2 u4 Z+ |+ w% o2 c* t
  123.         mov        fs, bx$ G+ o/ o4 z1 l  i3 `
  124.         mov        gs, bx
    2 |! P# D$ [, K# G3 G
  125.         and        al, 0x0FE$ t+ i9 W' x' F. A8 x1 l5 {1 E
  126.         /******************
    * @+ R* y4 i% y1 L* r2 A1 Q* ~
  127.         * 进入实模式      *
    3 R; }/ a4 ~) V. D! R# h- T+ `2 X. p- S
  128.         ******************/$ f! M; R0 e( e6 A+ d  b* k
  129.         mov        cr0, eax& J/ S2 f5 i7 M9 d
  130.         jmp        rMod0 l' x, x* u+ [3 M3 i
  131.        }
    ; V" ]: E+ S2 Z" m4 l* N

  132. , E" L/ g4 {  u( g# @
  133.     rMod: asm{
    . {4 l+ C$ s, y2 u2 j; Q& W
  134.         /* ******************************************************************
    3 d: h1 p8 J$ i) V' ^
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
      ~: z  D6 {# Z6 p
  136.         ********************************************************************/
    + |' v1 ~" B& w" c, \* D
  137.         mov        ax, 0! U! a* t. y) G2 m6 v) R3 F
  138.         mov        fs, ax0 r' K& X! w: l5 i! A$ Y  T
  139.         mov        gs, ax
    4 |6 B& O4 B5 B
  140.         sti
    ! B! b0 Q" c% W# Z, n* ~
  141.     }
    - H$ n- |, ^& E2 J; V
  142. }
复制代码
这是asm的
  1. ;/********************************************************************" R9 V! |3 C1 K: y2 i
  2. ;*    File: DOS4G.asm                                                *
    ( ?- x% b+ ^( u, e) m5 s
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    : X, B1 u+ e) I& Y' R
  4. ;*                                                                   *
    ; \+ U4 d& K( A
  5. ;*    ========================Title===============================   *
    6 b' `4 l. l4 @3 P5 q6 y
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    . a+ v- d$ b1 E% }3 ~/ i
  7. ;*                                                                   *! I: {+ {0 H6 D- {; [
  8. ;*   ===========================History==========================    *# j8 b, M) f  b" s( E0 h
  9. ;*    author: bini                                                   *
    ( J) y1 W2 j1 I" I$ f
  10. ;*      date: 2008-10-08  Frist version.                             *
    $ U) N& {2 s  T* R) P* A' u
  11. ;********************************************************************/ % L! L) d1 R+ V& {
  12. .model small
    " a8 O0 [' n6 z+ F
  13. .586p
    5 d$ C3 O5 D9 A9 T, F* K1 ]8 d

  14. , y( ^4 t" }8 }7 o4 u% o. l1 a5 _
  15. DSEG  SEGMENT   USE16                 ;16位数据段2 y1 x8 |9 {0 U4 h

  16. " W- K. g7 f1 f$ a! _/ J6 u
  17. DESC            STRUC
    ) E+ N1 W/ V0 q! c5 V1 k
  18.         LimitL          DW      0 ;段界限(BIT0-15)& S; T2 @( }8 T, a' Y4 a; p
  19.         BaseL           DW      0 ;段基地址(BIT0-15)4 o: T/ `: Z8 O. J1 L$ {+ [; ]
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    ) Z- \1 V( ^9 ?. S# T6 [
  21.         Attributes      DB      0 ;段属性
    $ `  L9 N  g+ p) B/ C  C" M+ x7 _, i
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)/ t8 j( _6 i$ [& O/ |
  23.         BaseH           DB      0 ;段基地址(BIT24-31)# Z; X& B- I- [, c
  24. DESC            ENDS
    2 N+ j3 Q) h4 h
  25. # \2 z! O  Z; Q) T
  26. PDesc           STRUC* k1 v0 d0 r3 [) Q
  27.         Limit           DW      0 ;16位界限
    ; ?4 ~) C. p" k' O4 G) ]
  28.         Base            DD      0 ;32位基地址0 [0 u7 x" p1 M0 Y* x0 j
  29. PDesc           ENDS
    9 w% Q2 ^" W1 @+ l* u2 u+ x& h

  30. 4 z! G0 ^3 ~) O
  31. GDT_def         Label   Fword) U% j; _, k; ]7 j1 o, u: B# Z8 [
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>
    + d& b  H% M/ {  O; x; d$ T% p) P% |
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    ! l6 s# B& {) Y  W. ^6 m- G4 v/ q$ z
  34. 1 \1 b5 f# V* ^$ \
  35. GDT_Addr        PDesc   <$-GDT_def-1, >! B5 Z# M, y  i4 _: [
  36. DSEG            ENDS                          ;数据段定义结束
    ) R) n, L* R7 M5 Q+ S  p
  37. 4 n& \8 q# q/ p( ^4 Q) q  ]
  38. CSEG            SEGMENT USE16                 ;16位代码段
    , U# X4 Q& c) j3 h  {! E3 d
  39.                 ASSUME  CS:CSEG,DS:DSEG" v! @& i$ L' n( l' Q" ^. H' |
  40. .Startup
    5 X, p- ~7 F& V$ Z& y
  41.         call      Set4gb
    * Y7 \6 Z' e% I9 P1 [# ?  u  v1 J
  42. ;
    . i: t; q7 d& h7 E* a" M
  43. ;       fs, gs即能访问4GB空间4 u" l) F! r1 @, T7 Q
  44. ;       write your code in here.
    - y7 g- x  w/ b
  45. ;, I. Q' W- K# v$ ^, a
  46.         .exit3 @4 V# b, l3 c6 H' A6 B
  47.         & s- ^; B5 U( Z- `( s1 x! p
  48. Set4gb          PROC      NEAR$ g! N& f, d+ U# y9 R7 Q
  49.         in        al, 92h  U9 }# K6 t* s: Q
  50.         or        al, 0026 \' o/ }6 ?% F4 J
  51.         out       092h, al! U, ?2 ]: e7 H  E. W
  52.         out       0edh, al6 z1 y' H) Y5 \$ i+ _9 f; F

  53. % X3 q' M8 f( r9 t6 ]8 m, |. w
  54.         cli+ \( i9 a" ]8 W+ S: L3 d6 ?
  55. + l- S" M5 r- P* k/ e
  56. ;        mov      word ptr GDT_Addr, (2*8-1);
    - V2 g! B7 K* N7 D/ K  H
  57. 5 Z( v3 W! h6 U! u6 e, O; m# M
  58.         mov       eax, ds9 U% ]; `. t: [. V# f* S! ]
  59.         shl       eax, 4- @. I. y! ]1 j  a; H# u
  60.         xor       ebx, ebx
    ' Y  A8 P* i% Q* ?! x7 u% K
  61.         mov       bx, offset GDT_def
    ; ~+ x5 H4 ]. u9 K- q  S
  62.         add       eax, ebx
    ; ^5 o! k+ O* R' E
  63.         mov       dword ptr GDT_Addr.Base, eax
    9 Z7 P" @0 Y0 [- `( i7 D
  64.         lgdt      fword ptr GDT_Addr
    ) M* z$ B! K) T+ _+ ]! J

  65. 1 _7 P: r9 v1 t; T4 W% X8 B
  66.         mov       bx, 8
      q2 Y3 X% I$ I2 p8 `( m
  67.         mov       eax, cr0  q/ i5 w! z( T* v. v8 n3 e
  68.         or        al, 1- _7 e# M( T* i4 ]0 P# p
  69.         mov       cr0, eax
    0 ?9 t1 i+ o; G8 h
  70. # c% D6 X+ c& j  o8 N: X
  71.         jmp       pMod
    : ^: T& B5 ]: l; V2 J* E/ _
  72.     pMod:
      D5 [4 Z  i% P9 X
  73. - j; E! Y$ g# T  E! V. |
  74.         mov       fs, bx: {4 q: e7 v8 Z9 i& M# T6 x7 Z
  75.         mov       gs, bx
    3 U/ a" _* H3 _2 `6 y5 [- L- ]
  76.         and       al, 0FEh. p# }' l  Y" f& T- ]
  77.         mov       cr0, eax
    , @- s; m  L2 ^8 L
  78.         
    5 V  A8 Q! a* s* f1 E
  79.         jmp       rMod; }+ b) ?( o3 |* O6 S/ H6 _9 o8 T
  80.     rMod:* Z% L! |* G" `, X7 d3 t9 }/ I0 k
  81. 6 p& f: S) ^0 e5 R7 @4 ?
  82.         mov       ax, 0
    - \7 D- U0 q. H8 `% D: Y
  83.         mov       fs, ax
    2 G# q- t" y: p( r  \3 h
  84.         mov       gs, ax4 p  c0 B/ S, ]/ H/ [- z9 q' x1 w6 P
  85.         
    % I6 f7 _) c, J% C0 S( {
  86.         ; 在2M的位置测试写一下数据
    1 W/ P/ |8 {+ y$ h6 L! q* [
  87.         mov       esi, 200000h2 D0 C5 {0 J0 Z0 g, k
  88.         mov       dword ptr fs:[esi], 055aa55aah
    7 p+ u, ?: M% d+ A8 V
  89.         ; 用RU去看看200000h的位置是否是此数据....
    9 p9 p) `; l! |+ f3 l. x
  90. 4 O, f* }6 P( q; z& l4 C2 T
  91.         sti- C0 b# N& @" p' O& S7 f
  92.         ret* A/ w" A! ^% t
  93. Set4gb  ENDP
    7 _$ }% R1 g+ Q& \$ B8 J, q
  94.        - n; j* d9 R% U) e9 E6 p
  95. CSEG           ENDS                              ;代码段定义结束
      N# d! ?% R8 c  \
  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# e$ r  M: Z4 y0 ^6 a
3 {. v! m3 }1 |" d1 z6 K/ J6 t
option->compiler->code generation中的option选中, [X] compile via assembler
7 J+ {5 ~8 u7 V8 y# ~8 ], ?/ V
1 J' R! M5 s4 w+ e. W$ y[ 本帖最后由 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;4 j) V, @6 T7 O4 ]2 x) a- [! r
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;1 S& }4 F+ j$ M) j8 y4 Z2 P

# r. c! i) J4 W  \- n, `  ?GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
0 M8 D+ N9 r+ \ 替换如下,
' F1 K$ c& S( |/ A) `9 YNull_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>5 G+ o7 d/ C4 y5 U2 q; @8 Y4 ~8 E8 k
Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>5 A; f. K1 m$ J' }3 B) D/ h

4 ?/ D- o' B" pGDT_Addr        PDesc   <$-GDT_def-1, >' q: r5 l( o# e3 n" F
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
; q& _7 Y/ b  [" joption->compiler->advanced code generation中的instruction set选 80386
1 w& N/ r1 n& H0 r8 o, {  ?3 C) X1 X6 ]
option->compiler->code generation中的option选中, [X] compile via assembler

3 R' s. p5 f8 I: p3 v: P* t' @   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
* K0 e# M. M3 s; h$ ]9 e* }1 h* a- H9 I7 H
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

! D# O7 c4 {0 q5 A/ w8 F: q1 Z( T0 X
我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 01:28 , Processed in 1.431095 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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