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

DOS 4G big real Mode Demo code。

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

9 q/ _+ W9 `/ D) F, X2 v. |% d这是C的
  1. /********************************************************************
    2 C! O# @  f* w2 H, ?. R
  2. *    File: DOS4G.H                                                  *
    3 D1 }0 M; u; t# J2 V  @& _7 p
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *+ L- q( q. L( `( P: S+ l: f
  4. *                                                                   *$ V2 b5 p  A% q" r$ z* }7 q
  5. *    ========================Title===============================   *
    + Z. y' \6 [0 q- [. ?1 H
  6. *        这个函数是让系统进入DOS 4G模式                             *
    ; |8 Z6 M. G( a! Y; z" f* u
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *' y  x9 T0 t) r" X4 }/ M3 i7 e
  8. *                                                                   *
    # [( D4 P3 F/ X3 B3 d+ y
  9. *       使用: openA20(); set4gb();                                  *3 i+ a( \9 G+ d8 K
  10. *                                                                   *% [. U" X) ], N7 Y# a
  11. *   ===========================History==========================    *5 Y/ `) e  z7 @( b! S: _' w+ V- Z
  12. *    author: bini                                                   *
    , j! I* k: R* Y( v$ |4 t% P
  13. *      date: 2004-11-30  Frist version.                             *
    ( f9 G) ?, u+ t( o
  14. ********************************************************************/: D# m6 n1 s* N" w+ h( h
  15. 8 ]8 h  V6 z( I9 I$ F. ~, }5 }) m
  16. #include <conio.h>
    4 i' a/ m9 q; M% U$ Z  S
  17. #pragma inline
    - W( k9 w1 n) Q7 D
  18. & B  k1 x, S* Q
  19. /***********************************************6 ]# U6 ?' D4 L. d- g
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *) }# M2 j( V4 e
  21. *    第二个为一个数据段,没有代码段。           *
    # D4 p5 {5 z8 }$ x
  22. ***********************************************/& X( q% g. h* p
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    ; w# d7 t+ s0 H; Q2 v( g; f
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0, 8 G% h# s/ J! i/ I7 G
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF
    $ w1 B3 I. B, M9 S& y- ^- ^
  26.                                       */# E; X" g# @: Z- H/ t; M) K" k
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )7 o) E! J* K2 n' Z) A9 G
  28.                                          最高字节为 base( bit 24~31 )% t  g' w) H; l4 X$ v) j9 P
  29.                                          - s! i+ g; n' Q9 w$ ?! o" q
  30.                                          属性Attrib = 0x8F92
    0 }' X; z* g7 @: ?/ T
  31.                                          
    # S3 B. Y2 A1 n, G
  32.                                              属性位Hibyte低四位为
    ' ^6 ?" Y0 Z8 x2 K: _
  33.                                                  Limit( 16~19 )=F
    . f8 i6 }. D4 c3 z" F) l
  34.                                              属性位Hibyte bit7 为粒度3 d8 p4 Q$ n/ g8 @4 d9 d8 K
  35.                                                  (值1=4KB粒度)
    8 \  r+ l' m3 ^+ V: d, G# Z1 E3 Z
  36.                                                  8F & 0x80 = 16 O% i3 ?8 U( m% d0 V6 _- _4 G
  37.                                                  : e. l3 j$ G% I+ z: P
  38.                                              属性位Lowbyte低四位为段类型,值=2+ t2 ^/ |% e% w6 h3 b& q2 I' b0 h
  39.                                                  表示为可读/写段
    ; [# [, o" S( ?2 k: [
  40.                                              属性位Hibyte高四位=9,bit3=1表示:! U( s7 R- |# N& U
  41.                                                  描述符对地址转换是有效的。
    & i+ [6 p# f3 _) W- A0 Q5 R- K
  42.                                                  bit0=1表示为:
    : ?, t# `- D+ m  @
  43.                                                  系统段描述符。而不是门描述符。! x- n2 R" z8 E4 H3 b  d8 c
  44.                                              
    . D! z0 U  c! b' d' E  T+ [- a
  45.                                          */
    2 j! z* P, \- L. e# H8 H, o

  46. / `3 p2 h% M, M. r! |/ j
  47. /****************************************
    2 P9 E* ^' d1 d& J6 i, d
  48. *    GDTR寄存器, 48bit=6bytes            *9 t& @% B4 |" H% X7 F
  49. *    +-------------------------------+   *- i7 I0 R" p8 l, o: G
  50. *    |   32bit基地址       |16bit界限|   *
    / N" P# e2 h1 n
  51. *    +-------------------------------+   *
    1 z- Q0 ^5 y/ f2 z
  52. ****************************************/
    / X; l, z9 A0 m3 O! ?/ t
  53. unsigned char GDT_Addr[6]={0};
    ' g4 L! b+ P3 y. {" p) p

  54. ( P+ y' K) h. O  ?; |0 a
  55. /****************0 ~; f" {5 D5 Q) G' r9 w/ A
  56. *    打开A20门    *
    2 ~0 i1 V# I' e1 k
  57. ****************/
    ) ^8 ]- L; Y4 T0 l# d
  58. void openA20(void)
    3 w) \& i5 M/ U- C" j1 N& R& D5 J4 L
  59. {2 q& C/ i) {* T. I5 G
  60.     asm{
    + C, h9 F" B* I2 r! E# Q& J
  61.         pusha
    " K. E! X- y' n) d
  62.         in         al, 92H
    2 u( k; S& L5 ~3 `3 C
  63.         or         al, 0x024 T$ P6 d" j0 ]# N' {, y9 S- `
  64.         out        0x92, al
    1 Z; @( L( r) u( i( m7 e0 n
  65.         out        0xed, al) e  j6 T! {3 @: h
  66.         popa
    - i5 {; O# U& p% J& {5 _! D0 T3 {
  67.     }
    ! X8 E4 Y8 w9 I1 G
  68. }) A/ K. O( F& }. k9 b. d

  69. 0 \* ~* t2 I$ l  ?2 P9 g+ l9 `/ ^1 v
  70. /***********************************************
    3 K. E! U( E/ I% f( V: x* a- ^
  71. *    函数功能:进入DOS4G                       *4 g; e& F' m3 o
  72. *    ====================                      *
    2 D& ~/ D% L6 t# _$ M
  73. *                                              *
    6 |$ D# O' E4 O! A4 ^3 U/ l; E% ~
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    % Q$ q  u3 C, C/ S( [2 b& A. p
  75. *   如:                                       *6 T+ L/ E# m! r8 U! M1 Y! \# Z, e
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *
    2 P: l8 ~# l3 g; N. j
  77. *       表示为 2个GTD                          *! w5 }9 ~" e1 z9 I/ X# N1 N+ c
  78. *                                              *; w9 t* u) t) q% n, z: n4 k% C
  79. *    选择子为所在描述符内的字节偏移。          *" t( w* K& C% o6 A& f
  80. *                                              *
    * n+ C" [+ `" y! v7 U7 l. Z
  81. ***********************************************/
    # M& t( J, [7 {2 z: [* V
  82. void set4gb(void)0 D1 g1 o. t1 Q0 o0 G( h) i' [9 q
  83. {
    : n' Z6 h9 }& H
  84.     asm{
    5 K. x8 c: I% n. I
  85.         cli
    ( r- \5 U( M; y  a8 o7 F
  86.         /****************************************1 c+ f; f) D( X
  87.         *    GDTR寄存器                          *
    0 k8 |. Z# M; R  D" X
  88.         *    +-------------------------------+   *2 Y& g6 k- R  R1 {/ O7 }
  89.         *    |   32bit基地址       |16bit界限|   *
    + w' ^5 V+ F7 Y$ z* F; A. [
  90.         *    +-------------------------------+   *
    2 c  q! g- K9 U0 e9 X: {
  91.         *****************************************/6 g4 N6 K; y. x7 W6 O) M
  92.         /*********************
    0 ^9 H6 A, w0 Q2 K( H
  93.         *        得出段界限       *6 N+ \* v! P& r& Y3 l+ s' D
  94.         *********************/3 k) t% _& d3 \* R
  95.         mov        word ptr GDT_Addr[0], (2*8-1);! z9 Z% ?$ j) O4 O% I& g
  96.         /********************************************  g$ j# Q9 @) q: z
  97.         *    计算GDT表的32位基地址,存入GDTR        *
    6 b1 g6 @/ h( H6 Q3 P& J
  98.         ********************************************/& c& u; k+ g9 d; t2 @" s3 Q
  99.         mov        eax, ds
    & C& [' d! b- E0 X
  100.         shl        eax, 44 O+ M( c: }& l4 }
  101.         xor        ebx, ebx
    6 C+ W1 P. Z$ f% w/ X
  102.         mov        bx, offset GDT_def
    9 L. D, v3 r4 f, C
  103.         add        eax, ebx4 m$ k! l/ U' s# Q
  104.         mov        dword ptr GDT_Addr[2], eax
    9 Z. I' d- c6 ^/ T: u, v
  105.         lgdt       fword ptr GDT_Addr( z4 s. H. w2 d( j, V6 W" ?
  106.         /********************
    ; n; y4 L7 ^6 M8 {, O; @2 X
  107.         *   选择子偏移      *
    ' c& `/ J( G. Y0 b$ y+ N
  108.         ********************/- O6 |" V7 W: `6 Z9 Y
  109.         mov        bx, 8
    ( O# I( ]9 `+ |, V) J
  110.         mov        eax, cr04 s4 A3 v, R; Z2 x* Y
  111.         or         al, 1& w6 D3 W- [4 n6 |, @
  112.         /**********************
    4 r/ \" G+ Z+ y$ I1 ]- J! e
  113.         *     进入保护模式    *+ g1 V  ]% M. z0 d
  114.         **********************/6 Q4 Z; A( Y3 a8 C2 X  E
  115.         mov        cr0, eax
    / o) G' z1 g+ l5 Q
  116.         jmp        pMod; M0 p4 P8 M" O3 m  y$ z$ X
  117.     }
    ; u) z2 M; w5 {0 B% @  ]6 W

  118. 9 P# E: ?6 w  }' g
  119.     pMod: asm{  J  z: l" ~! u3 J, X  O
  120.            /************************************************************3 K& S% N: f9 w
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *
    + i7 T) [* y. @' Z
  122.            ************************************************************/# }4 Z8 e8 D0 ]. I1 t1 e- x4 q
  123.         mov        fs, bx
    / z& B9 a' w" S# [- e6 u
  124.         mov        gs, bx6 U# x3 X* L: l7 w
  125.         and        al, 0x0FE
    ' v2 ^$ \/ B. T2 F) N9 x7 o
  126.         /******************) F6 ?; A" N9 S
  127.         * 进入实模式      *7 j/ Z; e% L. u% N# B% x
  128.         ******************/+ D, r* ]8 y. b9 h
  129.         mov        cr0, eax
    ! w5 F0 v: k% K: f" _' r% C1 I
  130.         jmp        rMod
    9 c+ A) ~+ W3 w0 l+ o! Q' V" n3 J
  131.        }, F1 a$ ~- K) E2 V3 O$ f8 p

  132. # r1 X% ?0 {+ L+ ^% C
  133.     rMod: asm{# a# \1 d8 k+ o6 V
  134.         /* ******************************************************************
    ; R5 E7 d. x: F9 c- Q) @8 a
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     */ U3 |$ d3 k$ z6 o. v1 @
  136.         ********************************************************************/3 e8 m; T5 y( f; b# p' [
  137.         mov        ax, 0+ |/ E% |* A2 m8 X8 W4 L
  138.         mov        fs, ax! ]6 V( L) `) L' z% U: `2 c
  139.         mov        gs, ax
    3 ?* Q; \2 i/ z" `  G
  140.         sti
    - k' ^0 E8 v) W/ j; y" E
  141.     }- ]9 n% K/ b, l; ?( f6 c$ b# K# i
  142. }
复制代码
这是asm的
  1. ;/********************************************************************" d: L1 _! b- q8 E3 |3 ], U
  2. ;*    File: DOS4G.asm                                                *
    / O9 q: l0 x/ C+ c: y' @! Q' J
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    ; T( i, Y1 E0 C3 k
  4. ;*                                                                   *
    6 \, p& Q! u* Y. X
  5. ;*    ========================Title===============================   *- F4 m( h% O4 Y8 x& @& h# S! u; S$ @
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *6 |$ z; \' m! P
  7. ;*                                                                   *
    + s8 {) q& ?3 a% V! y
  8. ;*   ===========================History==========================    *% R  l4 X3 _* k* D! L' y. K+ g
  9. ;*    author: bini                                                   *; j: g6 \# Y% o* g: N, z/ |+ f
  10. ;*      date: 2008-10-08  Frist version.                             *) A& k, e# k' Y7 n. \( z
  11. ;********************************************************************/
    : Y% U. u) `( d7 W/ i: s
  12. .model small
    " \" \/ h) L5 d, P& W
  13. .586p+ w: f, Q0 _# x7 f) x: K5 I

  14. 7 U7 P7 n2 t6 V- C( t/ {" ]7 p
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    ) }9 }, c6 _" G

  16. 9 l$ F  f+ H$ `+ h- @  `$ Y. C& V
  17. DESC            STRUC
    , w# e+ E' Z7 S2 ~9 D
  18.         LimitL          DW      0 ;段界限(BIT0-15)
    - x3 h: c/ p1 l
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    ! g& \: m; Q0 X! H. h% J4 K! Z
  20.         BaseM           DB      0 ;段基地址(BIT16-23)2 g- k6 W" L5 x' F/ g7 m# X
  21.         Attributes      DB      0 ;段属性: Y4 ~% m  U2 ^1 E
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)* u& s# S1 i$ \2 v9 M! S' z
  23.         BaseH           DB      0 ;段基地址(BIT24-31). j8 d% D  S' b
  24. DESC            ENDS( U) i- v6 @5 q( A1 X% {: p

  25. ; o" v- w7 `, f( q
  26. PDesc           STRUC3 {9 l, i2 r* I* |
  27.         Limit           DW      0 ;16位界限6 M+ F; ~7 s  ^3 B
  28.         Base            DD      0 ;32位基地址
    ! U8 H# p- x  c- i# n4 ~/ H
  29. PDesc           ENDS
    4 p1 m% D9 G- C( p6 H7 _
  30. * N+ ~; k$ R$ V3 ~2 E& q
  31. GDT_def         Label   Fword
    2 @1 S. m3 c4 V3 k; K% C
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>1 p6 g% ^9 U1 @9 z
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    5 @9 j7 Z# u: T( `9 g

  34. , M( k; I8 h4 r9 R6 x
  35. GDT_Addr        PDesc   <$-GDT_def-1, >
    ; j! e& T0 ?4 t9 V( s: k
  36. DSEG            ENDS                          ;数据段定义结束
    4 X( v3 e( z# V& B, N; _
  37. , P! X9 {$ A3 D2 P4 O, {4 p3 j! L7 {
  38. CSEG            SEGMENT USE16                 ;16位代码段4 K; H5 _" z8 v, r: s
  39.                 ASSUME  CS:CSEG,DS:DSEG
    5 a4 f- }, T# C$ Y3 s
  40. .Startup
    + [- g/ |1 F2 P9 Y8 O8 O. k4 j( ?) K
  41.         call      Set4gb( F, u( p; E0 H- Z" i
  42. ;
    % B2 Z: L2 k+ C& \0 x( Y* e! v: z& V
  43. ;       fs, gs即能访问4GB空间7 y- Y8 s' b' \! K# ]; |" X& W4 M
  44. ;       write your code in here.
    7 K  W- L; C2 A' a
  45. ;4 |- T: o: _6 P/ P( M0 u+ |  h
  46.         .exit
    7 \8 z. C6 k3 y# L4 e
  47.           _" ~, j9 E! M
  48. Set4gb          PROC      NEAR
    ) F6 F. R" w/ I8 Y9 @! _# k
  49.         in        al, 92h: D/ {/ \) D* D5 \6 t8 W5 u
  50.         or        al, 002. m' e: d0 C, {( C! E
  51.         out       092h, al
    ) o, J) X0 B0 ]2 E
  52.         out       0edh, al
    * r0 R/ {2 z+ L7 u0 x& H; D# x  n* r$ h

  53. " f! Z1 f0 j" X  W2 r7 `
  54.         cli
    + V8 [- n' A1 Y2 Q
  55. & Y9 n/ ]. E, G
  56. ;        mov      word ptr GDT_Addr, (2*8-1);8 g' Y% \* j) C" C

  57. $ d& W# Y0 K, y+ B3 v8 z
  58.         mov       eax, ds
    8 h/ A' p. T& I- H
  59.         shl       eax, 4# Z+ X3 B2 g5 k- P4 Y6 F
  60.         xor       ebx, ebx
    ) U4 B4 o5 C- E. S2 l
  61.         mov       bx, offset GDT_def
    ! \5 Y6 k5 X. K+ Q. S" v$ `4 ?
  62.         add       eax, ebx
    : }, S8 W$ P3 y; J% W
  63.         mov       dword ptr GDT_Addr.Base, eax: H4 ]" I7 ]$ c( w5 K
  64.         lgdt      fword ptr GDT_Addr9 j+ B, Q& `$ |1 W4 ?4 m8 w7 i# a9 D
  65. : P( b# P+ `& O* |
  66.         mov       bx, 81 @# f" v0 V/ R# ^' @1 O
  67.         mov       eax, cr07 r6 k  A& Y% W6 `, W, X# e
  68.         or        al, 1
    + C& }. o! K. }  |- p
  69.         mov       cr0, eax  O3 T) y9 C8 w  I; c  y. @; [; ^

  70. ) v; q5 W* l$ G' e
  71.         jmp       pMod
    2 G9 ~+ |1 F2 ?# `* u+ u- y! Y
  72.     pMod:
    + g1 g: I3 e! P

  73. . v+ e5 U6 m% ]! J8 r$ Y6 b
  74.         mov       fs, bx) C: ^7 h/ Z/ q+ K  v  K( s7 y, D9 k- @
  75.         mov       gs, bx# f4 e) |$ D: H0 f; k
  76.         and       al, 0FEh( M0 Z' \4 |6 Z6 Z7 _9 f. I- m1 q2 V
  77.         mov       cr0, eax& O; c  m: @3 c* J3 e$ ~' H% P
  78.         
    5 ]- W# b) C0 w) l
  79.         jmp       rMod4 Q6 ^) d! |2 N& Y6 j4 m
  80.     rMod:
    ; S& c+ e" w$ F- |7 K5 O+ n+ Y

  81. % Q) }' E0 {8 `
  82.         mov       ax, 0, x; d5 a& B" T6 _' S3 }
  83.         mov       fs, ax0 J" F3 D- p9 s
  84.         mov       gs, ax0 g5 m3 P, T2 w2 R4 g4 q; k' l) U
  85.         2 b+ K& D( Q( C( q+ ?1 b
  86.         ; 在2M的位置测试写一下数据
    0 r% P  l" [: D5 g% \" H1 h- W
  87.         mov       esi, 200000h
    4 n4 l. ^9 B; C
  88.         mov       dword ptr fs:[esi], 055aa55aah- {8 J3 N8 z! r, o
  89.         ; 用RU去看看200000h的位置是否是此数据....* E: X/ w9 r' e7 Q' `2 {

  90. - s7 W" R  Q% D3 k
  91.         sti1 p, f( ~# j# z7 U8 h% P4 {
  92.         ret
    8 k! ~. X! G  a
  93. Set4gb  ENDP
    : i6 L) e% |9 w6 g
  94.        6 S8 s9 S: q& k0 V& y& ~, `- u  X
  95. CSEG           ENDS                              ;代码段定义结束
    2 H: S3 O0 b5 ~. b- S1 L6 }
  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
/ ?5 e* j7 q$ o+ N; W- O$ F
& \; r: I4 p# I" q4 J! ]. [1 loption->compiler->code generation中的option选中, [X] compile via assembler
, z& \/ q+ ?; N" n0 j: p
  T0 G6 A" T4 a/ s[ 本帖最后由 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;" c1 S$ U& {/ d. n( P
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;. ?( e! t* ?7 r' ]# s5 W
5 {; f& _' ]: N2 [) ~
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
; c4 w, p" t6 W, `/ C 替换如下,, ^- v$ R" S$ ~: N5 N! J
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
% ?- F% G0 q7 _/ _0 \Data_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>
( h) L0 \$ ]. L5 Z
# m# v6 y4 x5 U1 B5 F$ nGDT_Addr        PDesc   <$-GDT_def-1, >
. L0 G1 g5 }  R8 `这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 发表
$ a% z$ z  y# I: R% ^option->compiler->advanced code generation中的instruction set选 80386! {/ Q3 i5 I0 y! _
& B7 |+ D/ m/ u! ?4 W% [
option->compiler->code generation中的option选中, [X] compile via assembler
7 Y/ B+ w' e/ x" ]3 Y# f8 [
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表 & G0 F9 q$ |9 W; F7 l

4 g) r9 `7 p! O4 T- S0 S( k' m7 J5 M* f   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...
2 `9 K/ `+ b  G# x  o

2 s# U; ]+ E! D; k4 p2 H我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 18:43 , Processed in 0.327336 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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