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

DOS 4G big real Mode Demo code。

[复制链接]
发表于 2008-10-8 14:29:37 | 显示全部楼层 |阅读模式
刚学习的同学,有些还不会,我这里贴点C和asm的代码。只供参考。0 {  T+ S( T& a+ i4 s$ {7 T2 W9 B

+ e& ?+ T+ r! l* s  t这是C的
  1. /********************************************************************* g! I3 }" F9 }( G+ Z1 Y1 D5 B9 `
  2. *    File: DOS4G.H                                                  *8 [( f, o7 ^3 f6 P: S
  3. *       Compile with BC 3.1 ( Editor: Tab size = 4 )                *
    : W2 z# z3 N+ n0 \0 M, }& K
  4. *                                                                   *
    ; A) b- v9 W% d7 [3 c# ~. I' x
  5. *    ========================Title===============================   *
    ; Q, R4 _7 E" T* ~8 E* k3 V
  6. *        这个函数是让系统进入DOS 4G模式                             *8 Y0 h2 z" P3 I6 i* u
  7. *       程序参考了:陈家琪《DOS实方式下直接访问4GB》                *
    1 W+ f0 b5 M- z( G8 A
  8. *                                                                   *
    6 v( v# @) H" _# r
  9. *       使用: openA20(); set4gb();                                  *
    & P) {  U; P% Y- h) P
  10. *                                                                   *
    5 `" X$ q" I: q" K  u4 w
  11. *   ===========================History==========================    *
    : O3 u: T: T, E$ a# b( z$ H/ f
  12. *    author: bini                                                   *7 f4 Q% o' b$ g) X8 Y" D8 y5 X# ~
  13. *      date: 2004-11-30  Frist version.                             *
    7 v9 l" m9 t, f/ H* h! K- j" m
  14. ********************************************************************/
    ( B& k; n# B. Q* W/ m' \: r3 n/ j2 N

  15. 4 Y2 B/ t$ F- r' a
  16. #include <conio.h>
    0 e  o: w* ]7 s
  17. #pragma inline
    ) t- @' e, L$ K

  18. : x7 q' i6 L8 t7 n( G
  19. /***********************************************
    ) C1 `' u+ X+ I6 x. y& R& u. R
  20. *    两个GDT,第一个为系统使用,不管,默认为0   *) q9 V% d. e/ u" N+ t# F
  21. *    第二个为一个数据段,没有代码段。           *1 A* F! W. i! s4 T
  22. ***********************************************/
    7 ^  J* w; P4 K. y% }+ H8 D) u
  23. unsigned long GDT_def[ ]={0,0,      /*系统使用*/
    0 [" m& k- \; A
  24.                           0x0000FFFF, /* hi16bit( 0~15 ) is base low=0,
    + k) r$ j: i* A
  25.                                          low16bit( 0~15 ) is limit low=0xFFFF & F/ K% s- ^5 c7 r& E0 a4 c
  26.                                       *// E$ c3 H3 z  ]$ n) b3 p
  27.                           0x008F9200};/* 最低字节为 base( bit 16~23 )9 P; y, _. V2 A. `. P- ]( S+ P
  28.                                          最高字节为 base( bit 24~31 )
    6 G+ ^& b* y/ }
  29.                                          
    ) l; p. @- B9 `% ?* ], o1 q/ i6 D
  30.                                          属性Attrib = 0x8F929 p# m2 f" L! y- i1 S- p
  31.                                          3 U$ j2 T. r- Z' I2 {% Y
  32.                                              属性位Hibyte低四位为 % [  x' t+ [$ d5 ^; g
  33.                                                  Limit( 16~19 )=F7 T7 s. O# o. g$ |) }
  34.                                              属性位Hibyte bit7 为粒度
    * a* G8 r; w/ n, D5 h
  35.                                                  (值1=4KB粒度)% `$ A, g! P! p1 [
  36.                                                  8F & 0x80 = 18 o1 e8 s$ O3 o
  37.                                                 
    9 N9 r0 [' Y9 Q4 O  e% C( N
  38.                                              属性位Lowbyte低四位为段类型,值=2- @( T/ G, `, B6 p9 n
  39.                                                  表示为可读/写段* s( q4 K1 V5 h: `9 T% u
  40.                                              属性位Hibyte高四位=9,bit3=1表示:0 {% g) S. x  |) ~$ T1 w) I
  41.                                                  描述符对地址转换是有效的。3 |2 l/ U8 X  K8 j% D! n' @# A
  42.                                                  bit0=1表示为:
    / u: f2 S* G) k* a  f( @
  43.                                                  系统段描述符。而不是门描述符。% `" `: c3 L" o
  44.                                              5 u- r/ N5 w! p/ \6 t
  45.                                          */
    ( v, M; @: K' s9 U

  46. 6 n! s/ Q2 c5 s. H8 r
  47. /****************************************
    7 q9 p- u; `8 h: Y+ i; M6 r
  48. *    GDTR寄存器, 48bit=6bytes            *
    * h3 ~, }, V1 C/ @6 t
  49. *    +-------------------------------+   *  h4 I# v$ K. C9 x/ T7 W- s+ s
  50. *    |   32bit基地址       |16bit界限|   *% @. j) u! `( X; U/ o! J
  51. *    +-------------------------------+   *1 ]+ L- d& X8 ?1 b! a
  52. ****************************************/
    # h8 y0 {! W* k  u& f+ W
  53. unsigned char GDT_Addr[6]={0};* f: W8 ^0 X' u) E
  54. - q0 m% b% O* _7 b+ _
  55. /****************
    7 l! s3 E# B9 t. b1 o
  56. *    打开A20门    *$ I- V( ]+ |* a4 [% E/ r
  57. ****************/
    6 {' {, T  b. [- y/ Q
  58. void openA20(void)
    9 A1 ^  G! D$ Y  r
  59. {
    * N1 {) |) q& C$ A0 p
  60.     asm{
    4 f6 A2 [- b! h/ m- f
  61.         pusha
    0 k; M$ A7 k5 [' J3 x
  62.         in         al, 92H
    5 E6 C7 x0 E  Z4 n
  63.         or         al, 0x02
    / ]; m" u0 {6 A8 X& ~3 E1 \* M
  64.         out        0x92, al
    ' u6 {' s4 o- m7 N5 i
  65.         out        0xed, al3 Q0 Z7 o3 s6 r. L7 D" p
  66.         popa  i4 i; z% P$ x1 j. P
  67.     }1 A$ V, i- \. C2 ?/ \
  68. }4 P# i& E2 z$ M/ H

  69. 7 s* z. c( ^" `$ a
  70. /***********************************************" P( ?. @7 N8 M) \  S3 u
  71. *    函数功能:进入DOS4G                       *
    1 l. s6 t0 t: D
  72. *    ====================                      *
    , L- Z+ Q  r  W: ~; E- @
  73. *                                              *
    - P) S+ X; c0 f, i  g
  74. *    GDT描述符界限计算方式:描述符个数*8-1     *
    9 _! W; r( B9 t8 l) R5 ]* N. `% F
  75. *   如:                                       *
    - u% d. S+ S' S. ]5 P2 W' h
  76. *        mov    word ptr GDT_Addr[0], (2*8-1); *; Y" M/ {  H  y9 {) Y+ }  q9 b, w: l
  77. *       表示为 2个GTD                          *
    * t! C5 _: @% U6 \
  78. *                                              *
    2 c/ V1 k* ^" N& m$ H/ T
  79. *    选择子为所在描述符内的字节偏移。          *- P5 K9 |9 G* o
  80. *                                              *
    6 W( o1 V! ?& G  R) }1 J
  81. ***********************************************/
    + X& N# x/ Y' F
  82. void set4gb(void)
    " J# @+ d! b8 D- X
  83. {1 f/ N$ C" u- |, z3 L2 K
  84.     asm{) P8 S* b6 P' d. a6 Y8 O
  85.         cli7 Z  y- N9 W0 j) \4 v& a% v
  86.         /****************************************& h  R! M4 w# `, P" z
  87.         *    GDTR寄存器                          *6 [! r' \5 i" X! i1 T# t
  88.         *    +-------------------------------+   *; y. z  u2 W  k1 Y
  89.         *    |   32bit基地址       |16bit界限|   *
    ; k9 r5 `% {5 S
  90.         *    +-------------------------------+   *! p" F  l+ J$ X" i, O
  91.         *****************************************/5 ]2 A2 X2 a) M5 j
  92.         /*********************
    ; L  X2 o. \1 z
  93.         *        得出段界限       *9 w3 i; x7 @6 W' }" o
  94.         *********************/) y* q; U( D2 F* J& ]7 }
  95.         mov        word ptr GDT_Addr[0], (2*8-1);
    0 x5 W% j2 j  }
  96.         /********************************************3 I! k' y6 l0 f& {  K1 C* D; j
  97.         *    计算GDT表的32位基地址,存入GDTR        *; O& u3 V/ i! i
  98.         ********************************************/
    $ t; K; y3 m" H4 c5 h1 G/ g
  99.         mov        eax, ds: ~3 ?. x1 d+ O( b$ l
  100.         shl        eax, 42 d' F' k* U* W* d+ X  d
  101.         xor        ebx, ebx
    + Z* G# W, @6 a; l
  102.         mov        bx, offset GDT_def
    1 t* [" i: R( c" X5 }( K# q
  103.         add        eax, ebx% N, _+ W  T# W" L1 r$ I: U
  104.         mov        dword ptr GDT_Addr[2], eax
    - t; c  f$ @; L# y& G$ H( P8 A5 X
  105.         lgdt       fword ptr GDT_Addr" J% F4 B; w$ ]0 u( M
  106.         /********************% p. C# D4 y" E% K8 b
  107.         *   选择子偏移      *" g+ W7 C) @$ O' i' V3 [7 G4 i
  108.         ********************/
    0 o5 K) e$ g6 w0 @2 a( e
  109.         mov        bx, 85 J% g! b, r0 m! a
  110.         mov        eax, cr0
    7 x( x. {1 c8 b! d) n
  111.         or         al, 17 a0 k/ t/ B4 ^4 N
  112.         /**********************0 @; |* `; i/ K$ J- y& L, j* E
  113.         *     进入保护模式    *0 f. O# U0 m1 O, ?
  114.         **********************/
    + k; a4 t" Q6 U! Y3 H
  115.         mov        cr0, eax
    1 }9 K* t" w6 R$ l( g
  116.         jmp        pMod3 V2 ^0 T' ]8 q+ B  s
  117.     }$ A' V  R) z/ o& F

  118. 1 ~) X& R# A9 ^! b
  119.     pMod: asm{: r, t  {; p+ [( l
  120.            /************************************************************
    3 ]6 q/ d( u; f
  121.            * 让fs与gs加载选择子,使其能访问 0xFFFFF * 4K (4GB) 空间    *; P% i3 _0 P2 F: ]( b% T) c
  122.            ************************************************************/& Y" |4 |( L" [/ v( b
  123.         mov        fs, bx; g; A1 r. g; y+ I' q
  124.         mov        gs, bx  [5 Q; U3 q0 r7 s
  125.         and        al, 0x0FE
    4 h" G* h. e, c! d$ O
  126.         /******************/ A- F- F5 C2 H. P
  127.         * 进入实模式      *
    1 U1 z1 d& Q8 i% A* h7 V
  128.         ******************/
    / ]1 E- X3 }* _/ d
  129.         mov        cr0, eax  X% n7 P4 T( V9 x8 q
  130.         jmp        rMod
    ( n( I- ]; F+ F- |
  131.        }
    0 l9 {# Y5 r. f; s/ O
  132. 4 t8 J( k2 {! V# G% H% M& x
  133.     rMod: asm{3 P0 a. r$ x; `  [
  134.         /* ******************************************************************5 O3 U+ g$ p! R, S& N
  135.         * 退出,fs、gs清0,访问系统内存可用: gs[32位,相对于0的偏移地址]     *
    ! H  l4 v0 _+ G* g3 Y
  136.         ********************************************************************/
    : ]( @1 P6 M- j& z' z& V; U
  137.         mov        ax, 0
    0 j! s$ g! k, a) P9 w0 ^) n! y
  138.         mov        fs, ax
    ! l6 H8 A1 d, T% ^+ n9 m7 F: {
  139.         mov        gs, ax- R, A- Z# Z# ^0 Q
  140.         sti4 C: Q9 I0 j; V, E8 ^
  141.     }' {1 L- B. r% y/ M8 J. j- [7 \# v
  142. }
复制代码
这是asm的
  1. ;/********************************************************************
    , I+ I/ r7 N- R) j/ n
  2. ;*    File: DOS4G.asm                                                *' P; W* K( R2 @6 s- w
  3. ;*       Compile with masm ( Editor: Tab size = 4 )                  *
    " R, I' K" |" ^8 D! f) I! d3 Z5 q
  4. ;*                                                                   *
    % n  w' P+ ~# u0 w; W
  5. ;*    ========================Title===============================   *
    : t6 \( h* \! ^/ _
  6. ;*        这个demo是让系统进入DOS 4G模式,进行数据访问               *
    " |% M2 c4 q# S4 m3 r
  7. ;*                                                                   *
    & ?0 v. f6 u0 t, W0 l. [* o
  8. ;*   ===========================History==========================    *
    % u# Q* i9 t5 v) H4 I/ h
  9. ;*    author: bini                                                   *
    , T, H6 F1 B  _9 _" x4 Z# x
  10. ;*      date: 2008-10-08  Frist version.                             *
    : B+ [- r2 D# n* q8 l! t, ?
  11. ;********************************************************************/
    8 e: P" |$ }; {+ i5 P8 L" q
  12. .model small
    ' U8 p9 E5 k8 R; A/ j, D6 J
  13. .586p
    & r8 y$ j$ B: D3 m- ^3 ]/ P

  14. . O* U2 Y- X1 A1 J9 Z* g$ h7 H
  15. DSEG  SEGMENT   USE16                 ;16位数据段
    * t. |2 {, b4 L0 F
  16. 0 U3 |1 o) ~6 u# W0 t9 E
  17. DESC            STRUC& ]- |4 E; x7 D
  18.         LimitL          DW      0 ;段界限(BIT0-15)2 E+ s( _) J0 E" w; O
  19.         BaseL           DW      0 ;段基地址(BIT0-15)
    ; y3 J& O* J# Q- a2 e+ _" t
  20.         BaseM           DB      0 ;段基地址(BIT16-23)
    5 h2 R' R# n' {0 R
  21.         Attributes      DB      0 ;段属性
    " W( f( U6 \- O5 c4 T9 z7 W: y3 T, H
  22.         LimitH          DB      0 ;段界限(BIT16-19)(含段属性的高4位)
    * l1 z% ]* W; t1 V
  23.         BaseH           DB      0 ;段基地址(BIT24-31)
    8 h# r# g$ \4 t- D# l' }+ t
  24. DESC            ENDS' l: `3 _& J: m

  25. 1 T# T4 ~: S* o# a; u
  26. PDesc           STRUC; q, @' \% ~- l* P# G
  27.         Limit           DW      0 ;16位界限
    ! ]$ Q, H* O  u% k' _1 q
  28.         Base            DD      0 ;32位基地址
    3 Z: {& h4 D' a; Z2 z4 G% b  T
  29. PDesc           ENDS
    5 F0 J' d8 R# x9 t5 H- d) ]2 f
  30. 8 P- }) A. b4 \! _' V) |
  31. GDT_def         Label   Fword$ j* v9 j1 \4 a0 @( Y
  32. Null_Desc       DESC    <     0h,  0h, 00h, 00h, 000h, 0>* I, [% h% r" ]: O8 `* l
  33. Data_Desc       DESC    < 0FFFFh,  0h, 00h, 92h, 08Fh, 0>
    1 ^$ d* O  E  D1 V* W% A
  34. / E0 U. T  i5 U! @
  35. GDT_Addr        PDesc   <$-GDT_def-1, >8 _# \7 Y# X2 z4 K6 q7 X! a
  36. DSEG            ENDS                          ;数据段定义结束! l0 l+ i1 y$ W' b
  37. * ^$ \* `2 \! O# [
  38. CSEG            SEGMENT USE16                 ;16位代码段
    5 e8 {; x4 q+ M. V4 Z* E9 @; ~9 y
  39.                 ASSUME  CS:CSEG,DS:DSEG8 |8 q( R7 y7 ^. O3 }( `
  40. .Startup: x/ d; c* q! e+ s& U
  41.         call      Set4gb9 U2 Y6 L) Q- @' g8 S/ S3 t
  42. ;, o% M. Z) B  c( ]# R  t
  43. ;       fs, gs即能访问4GB空间, _; e# ]+ L/ y, a( x( i* ?" C
  44. ;       write your code in here.
    5 o. O' I" `' M2 z( I
  45. ;
    ; a* F. Y% I" t0 x) P* j
  46.         .exit
    5 B, o7 I9 O% B/ L* E6 z5 `; t6 _
  47.         6 M4 n0 R6 \- ^! l  l
  48. Set4gb          PROC      NEAR- o# Y+ t/ O' [+ q4 h: |
  49.         in        al, 92h
    5 x$ P1 ?% i5 O7 I4 }* H
  50.         or        al, 002
    - L2 W2 M+ N: [1 v# K$ i8 H
  51.         out       092h, al
    : ]8 o: |" H$ z# @% t
  52.         out       0edh, al
    0 I  N# a1 m8 c- q: f& @
  53. ' I/ o; `8 x$ E: }5 |9 K3 S6 J
  54.         cli* m, x. |$ t, z" u( W

  55. ( k" u; k+ W! I" B6 [8 k; T
  56. ;        mov      word ptr GDT_Addr, (2*8-1);8 a7 v* B$ K  ]4 ~
  57. % H2 j5 Y/ X3 z, a% O
  58.         mov       eax, ds9 c2 Q, P; z  r: E: w& d+ `
  59.         shl       eax, 4
    ! R' a0 j( Z& v$ A& i( U* X) t
  60.         xor       ebx, ebx
    : u  F# J' n1 }0 o  a, |
  61.         mov       bx, offset GDT_def% R  E2 m5 H0 [9 ^! |
  62.         add       eax, ebx
    : r# @# h" I1 j% F. ], M
  63.         mov       dword ptr GDT_Addr.Base, eax* J' l: y" B, y% q( [4 {
  64.         lgdt      fword ptr GDT_Addr
    8 s5 ~' K: `/ z( b# ]0 v
  65. ; y9 P$ }$ m, [3 Q8 N) `/ r
  66.         mov       bx, 8
    . H: V4 x% k5 g$ l5 `+ q
  67.         mov       eax, cr0
    " A) D  [$ L7 ]' T( X
  68.         or        al, 1
    3 C2 ?( K1 |' A; y; Z
  69.         mov       cr0, eax- ]) u" {) v7 H' U4 T, v0 m6 G" @
  70. 1 M3 ~% R( T5 J3 r! u- t
  71.         jmp       pMod8 |( B+ E! |, U, Q7 q# c1 N
  72.     pMod:$ k1 u- R. K; X7 y

  73. ' b2 u- s) o: \4 d. a" |
  74.         mov       fs, bx4 n0 K# H/ z' Y% [$ ]
  75.         mov       gs, bx- l% K7 G9 L2 o( Q( k% M0 n
  76.         and       al, 0FEh
    / k( O- v1 p" ]- M( |  b8 t
  77.         mov       cr0, eax/ H: g, ?. g& s: T
  78.         ' ^, C9 i$ N1 d8 W/ O0 Y: B8 p- T5 U
  79.         jmp       rMod! h8 z4 a3 V; O6 j# J1 p' d
  80.     rMod:
    $ r6 V/ w9 [; R. d2 Y0 O
  81. 7 R2 x: G$ U$ z) u
  82.         mov       ax, 02 o$ T. k& t- N6 C1 m: s
  83.         mov       fs, ax$ ~( ~4 \$ e& F
  84.         mov       gs, ax
    ! Y* u$ M; d6 S& z5 P% P
  85.         2 U; G3 V3 \" ^0 O' l2 a! X
  86.         ; 在2M的位置测试写一下数据
    : I; n- {' r/ t" j. ]/ w$ `
  87.         mov       esi, 200000h7 x0 e$ t& l7 G6 P8 C6 ^
  88.         mov       dword ptr fs:[esi], 055aa55aah
      h+ Z/ g$ m/ {8 u; A
  89.         ; 用RU去看看200000h的位置是否是此数据....( s' v+ q, F0 g4 l
  90. & V; }/ y" i7 K
  91.         sti
    7 I' u. o9 U/ @& U  T4 U2 \
  92.         ret7 g: L8 M9 s/ b" j
  93. Set4gb  ENDP3 K1 D* \0 S" n+ K
  94.        / T- m0 c& V) [: i
  95. CSEG           ENDS                              ;代码段定义结束8 F! j$ m5 r3 W) }1 W/ e
  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+ n+ B1 c% R* B& v9 U0 m7 }

0 }* C4 S) f) ~* @  L+ A5 Aoption->compiler->code generation中的option选中, [X] compile via assembler
! ]  h: K2 _7 {0 w5 L1 e% J8 n7 X5 g
[ 本帖最后由 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;; t8 |9 f/ J* b7 p# Z
Data_Desc       DESC    &lt; 0FFFFh,  0h, 00h, 92h, 08Fh, 0&gt;
4 }& N0 K3 t* z/ T2 [0 S2 y# `# U1 i3 a  p
GDT_Addr        PDesc   &lt;$-GDT_def-1, &gt;
1 o+ E& b5 ?4 w, n* Q5 i  } 替换如下,& I- k: ~" o  R3 s- |3 p
Null_Desc       DESC    < 0h,  0h, 00h, 00h, 000h, 0>
, M) q7 X8 Z# N. F" E+ {  ^4 P' D4 bData_Desc       DESC   <0FFFFh,  0h, 00h, 92h, 08Fh, 0>( S# w/ S# l5 j
$ n5 J. i% h) }7 G5 d
GDT_Addr        PDesc   <$-GDT_def-1, >" n$ z/ K/ t; _" @
这样你就能编译通过并且可以运行
回复

使用道具 举报

发表于 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 n7 e# K" l) f
option->compiler->advanced code generation中的instruction set选 80386
! x) j* p  ]8 @/ J( n4 l. C$ G( H4 ~' t/ B7 Z! b
option->compiler->code generation中的option选中, [X] compile via assembler
7 e: i$ c6 W1 E' x
   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教
回复

使用道具 举报

发表于 2010-4-12 10:27:08 | 显示全部楼层
原帖由 A_jack 于 2010-2-26 10:47 发表
! L4 t7 l8 Z& M( f2 l
/ [  o2 A4 Y# g) r6 I; _1 |   作了上述设置之后还是不行,编译的时候提示: cannot find executable: TASM. 我换了几个版本的TASM还是没用,除非拿掉含有32位寄存器的那些code才行。这个是什么原因,请各位大侠多多指教 ...

. e* G( ^7 X. }5 n, N, t
) G5 x* E4 D8 ?( E! C5 y( j我也是相同的问题,请问哪位有解,谢了!
回复

使用道具 举报

发表于 2011-2-21 21:04:39 | 显示全部楼层
option->compiler->Transfer 设置TASM的路径,就不会提示找不到TASM;: v. r# [( O0 M" H9 V- `7 j, \
还要把TASMMSG.exe拷贝到源代码(工程目录),就可以编译完成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 04:56 , Processed in 0.025126 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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