中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 16:19
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
网络日志(Blog) » 【Redtek】 个人网志(学习笔记)
可打印版本  29,500 / 130
第106楼 redtek 发表于 2007-01-14 12:07
金牌会员 发帖 1,147 积分 2,902
【80x86汇编语言学习笔记】
直接定址表


(到106楼的时候,现在中文打字的速度早已经超过100字以上/每分钟了~:)

描述单元长度的标号



例程:将 code 段中的 a 标号处的 8 个数据累加,结果存储到 b 标号处的字中。




程序中,code、a、b、start、s 都是标号,它们仅仅表示了内存单元地址。

数据标号:除了表示内存单元的地址,还表示了内存单元的长度,即表示在此标号处的单元,是一个字节单元还是字单元,还是双字单元)。

使用这种包含单元长度的标号,可以使我们以简洁的形式访问内存中的数据。
它标记了存储数据的单元的地址和长度。
它不同于仅仅表示地址的地址标号。







反汇编上面代码:





下面程序将 code 段中 a处的8个数据累加,结果存储到b处的dword中,补全程序。





在其他段中使用数据标号


在其他段中,我们也可以使用数据标号来描述存储数据的单元和长度。

在后面加有 “:” 的地址标号,只能在代码段中使用,不能在其他段中使用。


将 data 段中 a 标号处的 8 个数据累加,结果存储到 b 标号处的字中。







如果想在代码段中,直接用数据标号访问数据,则需要用伪指令 assume 将标号所在的段和一个段寄存器联系起来。

否则编译器在编译的时候,无法确定标号的段地址在哪一个寄存器中。


assume cs:code , ds:data


data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends



seg 操作符,功能为取得某一标号的段地址。





将 data 段中 a 处的 8 个数据累加,结果存储到 b 处的字中,补全程序。




-d ds:0
0B49:0000 01 02 03 04 05 06 07 08-24 00 00 00 00 00 00 00





直接定址表



编写程序,以十六进制的形式在屏幕中间显示给定的 Byte 型数据。





利用表,在两个数据集合之间建立一种映射关系,可以用查表的方法根据给出的数据得到其在另一集合的对应数据。

1) 为了算法的清晰和简洁
2) 为了加快运算速度
3) 为了使程序易于扩充




程序入口地址的直接定址表


可以在直接定址表中存储子程序的地址,从而方便实现不同子程序的调用。



实现一个子程序 setscreen,为显示输出提供如下功能:

  1) 清屏
  2) 设置前景色
  3) 设置背景色
  4) 向上滚动一行

入口参数说明:

  1) 用ah寄存器传递功能号:
     0 表示清屏
     1 表示设置前景色
     2 表示设置背景色
     3 表示向上滚动一行

  2) 对2、3号功能,用al传送颜色值。(AL)={0,1,2,3,4,5,6,7}


各种功能的实现:

  1) 清屏: 将显存中当前屏幕中的字符设为空格符
  2) 设置前景色: 设置显存中当前屏幕中处于奇地址的属性字节:0、1、2位
  3) 设置背景色: 设置显存中当前屏幕中处于奇地址的属性字节:4、5、6位
  4) 向上滚动一行: 依次将第n+1行的内容复制到第n行处;最后一行为空。






编写包含多个功能子程序的中断例程

安装一个新的 int 7ch 中断例程,为显示输出提供如下功能子程序:

  1) 清屏
  2) 设置前景色
  3) 设置背景色
  4) 向上滚动一行

入口参数说明:

  1) 用 ah 寄存器传递功能号:

     0 表示清屏
     1 表示设置前景色
     2 表示设置背景色
     3 表示向上滚动一行

  2) 对于2、3号功能,用 al 传递颜色值,(al)={0,1,2,3,4,5,6,7}





遇到一个问题,在上面代码的 int 7ch 子程序的注解处。
暂时解决不了,不知道哪个宏指令可以让编译器认为 table 要从 200h 处为基址计算偏移(实际 table 应为 202h)。






关于数据标号与地址标号的区别分析


start: jmp short do0
top dw 0
top2: dw 0
do0: mov bx,top
mov ax,offset top2



分析过程


C:\Masm50>debug noname.exe
-r
AX=0000 BX=0000 CX=003D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B39 ES=0B39 SS=0B49 CS=0B49 IP=0000 NV UP EI PL NZ NA PO NC
0B49:0000 EB04 JMP 0006
-u
0B49:0000 EB04 JMP 0006
0B49:0002 0000 ADD ,AL
0B49:0004 0000 ADD ,AL
0B49:0006 2E CS:
0B49:0007 8B1E0200 MOV BX,
0B49:000B B80400 MOV AX,0004
0B49:000E B001 MOV AL,01
0B49:0010 8800 MOV ,AL
0B49:0012 2E CS:
0B49:0013 FF060200 INC WORD PTR
0B49:0017 2E CS:
0B49:0018 8B1E0200 MOV BX,
0B49:001C B002 MOV AL,02
0B49:001E 8800 MOV ,AL
-t

AX=0000 BX=0000 CX=003D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B39 ES=0B39 SS=0B49 CS=0B49 IP=0006 NV UP EI PL NZ NA PO NC
0B49:0006 2E CS:
0B49:0007 8B1E0200 MOV BX, CS:0002=0000
-t

AX=0000 BX=0000 CX=003D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B39 ES=0B39 SS=0B49 CS=0B49 IP=000B NV UP EI PL NZ NA PO NC
0B49:000B B80400 MOV AX,0004
-t

AX=0004 BX=0000 CX=003D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B39 ES=0B39 SS=0B49 CS=0B49 IP=000E NV UP EI PL NZ NA PO NC



当操作数据标号时,是在操作数据标号所示地址中的内容,它也代表长度。
如果 inc 它,则是在 inc 数据标号所示地址中的内容的值递增。

当操作地址标号时,是在操作它的偏移量。

[ Last edited by redtek on 2007-1-18 at 01:42 PM ]
第107楼 redtek 发表于 2007-01-15 12:33
金牌会员 发帖 1,147 积分 2,902
【80x86汇编语言学习笔记】
使用BIOS进行键盘输入和磁盘读写


) 键盘输入引发 9 号中断,BIOS提供了 int 9 中断例程。

) CPU在9号中断发生后,执行 int 9中断例程,从60H端口读出扫描码,并将其转化为相应的ASCII码或状态信息。
  它们存储在指定空间(键盘缓冲区或状态字节)中。

) 在CPU执行完INT9中断例程后,都放到了键盘缓冲区中。
  键盘缓冲区中有16个字单元,可以存储15个按键的扫描码和对应的ASCII码。

) 键盘缓冲区是用环形队列结构管理的内存区。




BIOS的INT9中断例程和INT16H中断例程是一对相互配合的程序。

INT9中断例程向键盘缓冲区中写入。
INT16H中断例程从键盘缓冲区中读了。




例程:接收用户的键盘输入,输入r,将屏幕上的字符设置为红色。
   输入g,将屏幕上的字符设置为绿色。输入b,设置为蓝色。





字符串的输入


最基本的字符串输入程序,需具备以下功能:

1) 在输入的同时需要显示这个字符串
2) 一般在输入回车符后,字符串输入结束
3) 能够删除已经输入的字符


编写一个接收字符串的输入子程序,实现上面三个基本功能。

(DH)、(DI)=字符串在屏幕上显示的行、列位置。
DS:SI 指向字符串存储的空间,字符串以0为结尾符。

字符串的存储空间是一个字符栈,字符栈中的所有字符,从栈底到栈顶,组成一个字符串。



程序处理过程:

1) 调用 int 16h 读取键盘输入
2) 如果是字符,进入字符栈,显示字符栈中所有字符;继续执行1
3) 如果是退格键,从字符栈中弹出一个字符,显示字符栈中所有字符;继续执行1
4) 如果是Enter键,向字符栈中压入0,返回。



子程序:字符栈的入栈、出栈和显示

参数说明:(AH)=功能号: 0表示入栈,1表示出栈,2表示显示
     DS:SI   指向字符栈空间
     对于0号功能: (AL)=入栈字符
     对于1号功能: (AL)=返回的字符
     对于2号功能: (DH)、(DL)=字符串在屏幕上显示的行、列位置







[ Last edited by redtek on 2007-1-16 at 09:55 PM ]
第108楼 redtek 发表于 2007-01-17 01:32
金牌会员 发帖 1,147 积分 2,902
【80x86汇编语言学习笔记】
看 本是 大师的贴子跟着学~:)


34字节DOS EXE文件,最短了?
http://www.cn-dos.net/forum/viewthread.php?tid=26748&fpage=1


操作步骤


C:\Masm50\temp>DEBUG
-N P
-L
-R
AX=0000 BX=0000 CX=0204 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AF5 ES=0AF5 SS=0AF5 CS=0AF5 IP=0100 NV UP EI PL NZ NA PO NC
0AF5:0100 4D DEC BP
-RIP
IP 0100
:0
-D
0AF5:0100 4D 5A 04 00 02 00 00 00-20 00 00 00 FF FF 00 00 MZ...... .......
0AF5:0110 00 00 ED 36 00 00 00 00-1E 00 00 00 01 00 00 00 ...6............
0AF5:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-E 0120 B4 4C CD 21
-E 0104 01
-E 0108 02
-D CS:100
0AF5:0100 4D 5A 04 00 01 00 00 00-02 00 00 00 FF FF 00 00 MZ..............
0AF5:0110 00 00 ED 36 00 00 00 00-1E 00 00 00 01 00 00 00 ...6............
0AF5:0120 B4 4C CD 21 00 00 00 00-00 00 00 00 00 00 00 00 .L.!............
0AF5:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AF5:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-RCX
CX 0204
:24
-W
Writing 00024 bytes
-Q



修改后的保留文件头为 32 字节,加上所写的指令为4字节(mov ah,4ch 和 int 21h),一共占了32+4=36字节~:)


Debug移动代码到某个指定的内存区的命令给忘了,哈哈……

关于修改 04h 与 08h 文件头的内容还不清楚,现在去找 .exe 文件头的资料~:)))


(在本是大师贴子的第4楼关于文件结构的内容)
http://www.cn-dos.net/forum/redirect.php?fid=6&goto=lastpost



相关资料:文件格式


(以下节选出自 http://db.kingsoft.com/lianzai/3.2.shtml - 《数量最多的病毒--文件型病毒》一文 



  可执行文件格式:

  在DOS环境下有四种基本的可执行文件格式:

  批处理文件,是以.BAT结尾的文件,在BAT文件中可以包括一些DOS命令,以及在批处理文件中调用其它的可执行文件;批文件还有一些简单的流程控制功能,可以实现循环、条件判断等简单的编程工作。

  设备驱动文件,是以.SYS结尾的文件,比如说CONFIG.SYS和IO.SYS等,是DOS操作系统使用的设备驱动程序。

  COM文件,是以.COM结尾的纯代码文件。没有文件头部分,缺省的总是从16进制的100H处开始执行,没有重定位项,这也限制了它的所有代码和数据必须控制在64K以内。

  EXE文件,是以.EXE结尾的文件,这种文件以英文字母“MZ”开头,通常我们称之为MZ文件。MZ文件有一个文件头,用来指出每个段的定义,以及重定位表。.EXE文件摆脱了代码大小最多不能超过64K的限制,是DOS下最主要的文件格式。

  在视窗3.0和视窗3.1版本中,微软推出了一种新的可执行文件格式,在MZ文件头之后又有一个以NE开始的文件头,我们称之为NE文件。由于视窗的可执行文件同DOS相比增加了很多内容,如资源、动态库...。NE格式表现极为复杂,NE格式文件装载程序读取磁盘上的文件后,需要在内存中组装成一个完全不同的数据结构然后开始运行。

  在视窗32位平台(版本9x和版本NT/2000系列),微软又推出了一种新的可执行文件格式,可移植的可执行文件(Portable Executable File)格式。它同NE格式不同的是在MZ文件头之后是一个以“PE”开始的文件头。PE文件格式是从COFF(一个在Unix世界中广泛使用的通用二进制文件格式)的对象格式发展而来的,它同NE格式相比是进了一大步,其文件在磁盘中的格式同内存中的格式区别不大,装载程序实现起来相当简单。

  在视窗32位环境下,微软还有一种应用比较少的可执行文件格式:线性可执行文件(Linear Executable),主要用于设备驱动程序VXD,这种格式是微软和IBM共同开发的,也是IBM的OS/2操作系统使用的可执行文件格式。






(一知半解)

[ Last edited by redtek on 2007-1-20 at 10:24 PM ]
第109楼 namejm 发表于 2007-01-17 09:25
荣誉版主 发帖 1,737 积分 5,226 来自 成都
Originally posted by redtek at 2007-1-16 12:32:
修改后的保留文件头为 32 字节,加上所写的指令为4字节(mov ah,4ch 和 int 21h),一共占了32+4=26字节~:)

  呵呵,学汇编学昏了吧?
第110楼 redtek 发表于 2007-01-17 09:44
金牌会员 发帖 1,147 积分 2,902
多谢namejm兄提醒,“32+4=26字节”错误更正了~:)
这错误看上去真可乐,哈哈哈………

[ Last edited by redtek on 2007-1-16 at 08:48 PM ]
第111楼 redtek 发表于 2007-01-18 03:34
金牌会员 发帖 1,147 积分 2,902
【80x86汇编语言学习笔记】
磁盘操作


常用的 3.5 寸软盘分为上下两面,每面有80个磁道,每个磁道又分为18个扇区,每个扇区的大小为512B。

2面*80磁道*18扇区*512B=1474560

磁盘的实际访问由磁盘控制器进行,通过控置磁盘控制器来访问磁盘。只能以扇区为单位对磁盘进行读写。

在读写扇区时,要给出面号、磁道号和扇区号。
面号和磁道号从0开始,扇区号从1开始。
BIOS提供了对扇区进行读写的中断例程 int 13H。


读取0面0道1扇区的内容到 0:200






将 0:200 中的内容写入0面0道1扇区





将当前屏幕的内容保存在磁盘



1.44 - 2880个扇区,从0编号:逻辑扇区为 0~~2879
0面79道18扇区,计算逻辑扇区号:(0*80+79)*18+18-1

[ Last edited by redtek on 2007-1-18 at 12:40 PM ]
第112楼 redtek 发表于 2007-01-19 06:58
金牌会员 发帖 1,147 积分 2,902
【80x86汇编语言学习笔记】
中断例程 INT 21H 3F号子功能调用来操作DOS 管道。
通过编程的方式读取一个程序通过管道“发送”过来的内容。

参考资料: http://support.microsoft.com/kb/46376/zh-cn 来自微软网站。

上面链接中所参考的示例代码为: QuickBasic 程序(调用汇编代码完成读取管道内容)




如果 CF=0 , AX=实际读取的字节数
   CF=1 , AX=出错代码




连蒙带猜的Debug试验过程……


-u
0B39:0100 B80000 MOV AX,0000
0B39:0103 8ED8 MOV DS,AX
0B39:0105 BA0002 MOV DX,0200
0B39:0108 B95000 MOV CX,0050
0B39:010B 31C0 XOR AX,AX
0B39:010D B43F MOV AH,3F
0B39:010F BB0000 MOV BX,0000
0B39:0112 CD21 INT 21
0B39:0114 90 NOP

(上面 BX 寄存器内应存放文件句柄,按照上面资料的代码注释上说:)
(inregs.bx = 0 ' The is the handle to the CON device is 0  )


-g 114
My is China.

(在这里居然让我输入东东,哈哈……)
(看来我在这里输入的内容会被接收程序当做从管道过来的内容而接收掉)
(它被接收到了 DS:DX 文件数据缓冲区这里所定义的地址)
(那个 “My is China.” 是我输入的内容)



AX=000E BX=0000 CX=0050 DX=0200 SP=FFFE BP=0000 SI=0000 DI=0000
DS=0000 ES=0B39 SS=0B39 CS=0B39 IP=0114 NV UP EI PL ZR NA PE NC
0B39:0114 90 NOP


(输入的内容被读到了这里)

-d ds:200
0000:0200 4D 79 20 69 73 20 43 68-69 6E 61 2E 0D 0A 00 00 My is China.....
0000:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0240 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0250 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0260 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0270 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................



通过管道实验过程:




在内存 0:200H 处,它们全被存到了自定义的( DS:DX )文件数据缓冲区内。
上面的实验过程是调用了 int 21 中断例程的 3FH 子功能来读取通过管道送过来的字符串。支持多行字符串,以 0DH 0AH 为回车换行。


也就是说,这样的原理可以应用在批处理中:
比如将输出的内容暂存在指定的内存中,而不是磁盘上(代替批处理所生成的临时文件)。
当需要的时候再取回来或是通过某种内存操作来分割(如我就想要第3行字符串,其它的都不要)等操作。


(一知半解)

[ Last edited by redtek on 2007-1-20 at 10:23 PM ]
第113楼 redtek 发表于 2007-01-21 11:27
金牌会员 发帖 1,147 积分 2,902
【80x86汇编语言学习笔记】
字符串操作



方便的 BIOS int 10 -- 13号子功能调用

在第10行(行从0起,实为第11行),第0列(实为第1列)显示字符串:



上面显示字符串使用了 BIOS 功能调用。



自动从 DS:SI 装入字符到 AL 寄存器:

LODSB 指令,将 DS:SI 地址中的 byte 字符装入 AL 寄存器,然后 SI+1,每次执行 LODSB 指令时均会如此,方便了字符串的传送。


C:\Masm50>debug
-e 0:200 "My name is Redtek!"
-a
0AF6:0100 mov ds,ax
0AF6:0102 mov si,200
0AF6:0105 lodsb
0AF6:0106 lodsb
0AF6:0107 lodsb
0AF6:0108
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AF6 ES=0AF6 SS=0AF6 CS=0AF6 IP=0100 NV UP EI PL NZ NA PO NC
0AF6:0100 8ED8 MOV DS,AX
-t

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0000 ES=0AF6 SS=0AF6 CS=0AF6 IP=0102 NV UP EI PL NZ NA PO NC
0AF6:0102 BE0002 MOV SI,0200
-t

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0200 DI=0000
DS=0000 ES=0AF6 SS=0AF6 CS=0AF6 IP=0105 NV UP EI PL NZ NA PO NC
0AF6:0105 AC LODSB
-t

AX=004D BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0201 DI=0000
DS=0000 ES=0AF6 SS=0AF6 CS=0AF6 IP=0106 NV UP EI PL NZ NA PO NC
0AF6:0106 AC LODSB
-t

AX=0079 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0202 DI=0000
DS=0000 ES=0AF6 SS=0AF6 CS=0AF6 IP=0107 NV UP EI PL NZ NA PO NC
0AF6:0107 AC LODSB
-t

AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0203 DI=0000
DS=0000 ES=0AF6 SS=0AF6 CS=0AF6 IP=0108 NV UP EI PL NZ NA PO NC
0AF6:0108 29C0 SUB AX,AX
-q





获得命令行输入的参数(类似于批处理中的: %1 %2 %3 ....)

命令行输入的参数位于: DS:0081H 处,以 0AH 结束。



[ Last edited by redtek on 2007-1-21 at 01:39 PM ]
第114楼 redtek 发表于 2007-01-21 11:33
金牌会员 发帖 1,147 积分 2,902
【Windows环境下32位汇编语言学习笔记】
API原型中前缀详细解释:




API的参考手册中的函数原型为匈牙利表示法。

[ Last edited by redtek on 2007-1-20 at 10:35 PM ]
第115楼 redtek 发表于 2007-01-24 06:26
金牌会员 发帖 1,147 积分 2,902
【MS-DOS操作系统学习笔记】
引导扇区


当计算机从软盘启动,BIOS把引导盘中第1扇区载入地址为 0000:7c00 处的内存中。然后BIOS跑到 0X7C00 处开始执行引导扇区中的代码。

引导扇区的代码完成将整个操作系统载入到计算机内存并开始操作系统的引导。

第1扇区,就是 DOS Boot Record(DOS引导扇区)。


(待续……)

[ Last edited by redtek on 2007-1-25 at 08:14 PM ]
第116楼 redtek 发表于 2007-01-25 02:57
金牌会员 发帖 1,147 积分 2,902
彩色仿DOS窗口



  这个彩色仿DOS窗口是跟lxmxn兄学的~:)))

  而且用这种颜色、背景表示DOS命令即酷又生动,更接近真实~~~


第117楼 redtek 发表于 2007-01-27 05:03
金牌会员 发帖 1,147 积分 2,902
【MS-DOS操作系统学习笔记】
文件操作


将字符串写入文件内。




int21 DOS功能调用: 40H  写文件
               3FH  读文件
               3EH  关闭文件
               41H  删除文件
                    ……

[ Last edited by redtek on 2007-1-26 at 04:08 PM ]
第118楼 redtek 发表于 2007-01-30 02:44
金牌会员 发帖 1,147 积分 2,902
【Windows32位汇编语言学习笔记】
建立编程环境


Win32可执行文件叫做PE文件。

PE文件的基本结构和DOS可执行文件有很大不同。它把程序中的不同部分分成各种节区(Section),其中可以有一个节区是放置各种资源,如:菜单、对话框、位图、光标、图标和声音等。


可供选择的不同编译器: MASM,TASM,NASM

根据以上编译的优缺点最后选择不同工具软件集合方式开发 Win32 汇编:

  汇编编译器: MASM软件包中的 ML.EXE 做为 Win32 汇编编译器
  资源编译器: 使用 Microsoft Visual Studio 中的 RC.EXE 和 LINK.EXE……

  ……

  目前已被 Steve Hutchesson 缩合创建的开发软件包名为 MASM32,内收集了合适的工具软件、收集导入库、整理出完整的头文件、收集了来自全世界各地Win32汇编爱好者发布的源程序、帮助文档、IDE开发环境……



  MASM32软件包使汇编不再只用来编写简单的程序和少量的核心模块,它的目标完全是为了用汇编写出专业的大型程序。



  MASM32软件包的官方站点(在此下载):
  http://www.movsd.com
 
  支持OS版本:Win2000 and later OS versions
         Win9x OS versions


  开发工作环境的建立:

    · Editplus
    · UltraEdit32
    MSDN
    · Hexedit
    Resource Wor5kshop
    Soft-ICE
    反汇编软件W32DASM
    · Visual C++
  

  破解工具介绍: http://www.e-works.net.cn/Articles/511/Article31815.htm




编译一个例子:




基本开发环境基本安装完成~:)

[ Last edited by redtek on 2007-1-29 at 08:59 PM ]
第119楼 zhengzhichu01 发表于 2007-02-09 02:25
新手上路 发帖 2 积分 3
很有感触啊?真是牛啊
第120楼 redtek 发表于 2007-02-09 11:24
金牌会员 发帖 1,147 积分 2,902
有好几次都想把书给撕了,要不就想砸点什么东东,……终于把入门的内容给看完了~:)
上一页  15 6 7 8 9  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023