汇编语言程序设计

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-31
汇编语言程序设计中使用哪种软件工具

1、MASM。
微软公司为x86 微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm,是Windows下开发汇编的利器。

2、NASM。
全称The Netwide Assembler,是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。
3、TASM。
Borland公司开发的汇编编译器,被广泛用于Turbo C,Quick Basic等编译器,用作中间过渡编译。它也能独立的编译纯汇编或是Win32Asm的代码。具有编译快速,高效的特点,至今依然是汇编开发的首选利器。
4、GAS。
GNU汇编器(GNU Assembler),简称为GAS,是由GNU计划所使用的汇编器,GNU的核心精神是自由与分享,所以GAS亦是自由软件。
5、RadASM。
一款著名的WIN32汇编编辑器,支持MASM、TASM等多种汇编编译器,Windows界面,支持语法高亮,自带一个资源编辑器和一个调试器。拥有较强的工程管理功能,加之众多插件的支持,使得它用汇编语言编写Windows软件变得得心应手。
参考资料来源:百度百科-汇编语言

话说怎么这么巧,这三本我都看过。。。

王爽的简单,容易明白,容易入门,没法精通。

Intel汇编语言,内容详细,缺点就是太厚了,你可以和王爽的比下,快3本了。
所以他写的比较全面。

windows32,这个我曾经是作为后续才看到,因为它是WIN32汇编,不是X8086汇编了,
他使用的是WINDOWS界面编程。win32汇编和8086汇编类似于MFC和C的的关系一样。
调用的都是API,就不是单纯的MOV ADD JMP了。


需要学习WIN32汇编,最好是在8086汇编的基础上去学习,就像是从简单的学起,。


下面是我的建议:
如果你只想了解,开拓视野。建议去学王爽的,简单,容易理解,加个汇编交流群,百度一个小甲鱼汇编视频,一半个月就自学会了。
如果你想玩黑客,破解。。。那最好去学习,intel的。如果你连这都看不明白,那么想深入的搞清楚汇编语言,一个字,难。
如果你是学计算机的,想在windows下进行编程,并且想最个有界面的,可以先学,王爽,然后学习win32.

一.
1.ADD BX,AX 或 ADD BL,AL ;类型配对
2.MOV AX,0A999H
3.MOV AX,0F8H
4.MOV AX,1234H 或 MOV AL,12H
5.MOV AX,[BX]
6.MOV DS,AX ;DS不能直接存立即数
7.ADD [BX],10 ;对
8.PUSH AX ;push不能直接push立即数
9.IN AL,DX
10.OUT 40H ,AL
11.MUL AL ;mul不能直接跟立即数
12.MOV [DI],AX ;mov不能两个都是内存
13.ADD DI,AX
14.MOV DS,AX ;CS不可以改
15.SUB 10[SI],AX ;si di 不可以同时出现
二.
SUB [BP], BX 寄存器间接寻址方式;30400H;
MOV [BX+DI], SI 基址变址寻址方式;10400H;
ADD ES:[SI], DI 寄存器相对寻址方式;20200H;
MOV 10[BX], DI 寄存器相对寻址方式;10100H;
MOV DS:[100H], BX 相对基址变址寻址方式;10100H

三.
3456H;5678H;1234H;5678H;

四.
1234H;2468H;0008H;1008H;0804H;0408H;0508H;0508H

五.
01H,31H,0FFH,00H,78H,56H,FFH,FFH,00H,24H,00H,0BH,00H,0BH,19H,09H,09H
(从左往右地址变大)
AX=3101H,BX=0023H

六.
1.
汇编语言:(AssemblyLanguage)是面向机器的程序设计语言。
汇编:把汇编语言翻译成机器语言的过程称为汇编。
汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。

2.

3.
单独cmpsb就是逐一比较8个位;加上rep,循环比较,还是比较这8位啊

4.
是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。

5.
宏和子程序都是为了简化源程序的编写,提高程序的可维护性,但是它们二者之间存在着以下本质的区别:
1、在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用;
2、汇编程序对宏通过宏扩展来加入其定义体,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序是执行同一程序段,因此,目标程序也得到相应的简化;
3、宏引用时,参数是通过“实参”替换“形参”的方式来实现传递的,参数形式灵活多样,而子程序调用时,参数是通过寄存器、堆栈或约定存储单元进行传递的;
4、宏引用语句扩展后,目标程序中就不再有宏引用语句,运行时,不会有额外的时间开销,而子程序的调用在目标程序中仍存在,子程序的调用和返回均需要时间。
总之,当程序片段不长,速度是关键因素时,可采用宏来简化源程序,但当程序片段较长,存储空间是关键因素时,可采用子程序的方法来简化源程序和目标程序。

七.
…………

一.
1. ADD BX,AX 或 ADD BL,AL ;类型配对
2. MOV AX,0A999H
3. MOV AX,0F8H
4. MOV AX,1234H 或 MOV AL,12H
5. MOV AX,[BX]
6. MOV DS,AX ;DS不能直接存立即数
7. ADD [BX],10 ;对的诶
8. PUSH AX ;push不能直接push立即数
9. IN AL,DX
10. OUT 40H ,AL
11. MUL AL ;mul不能直接跟立即数
12. MOV [DI],AX ;mov不能两个都是内存
13. ADD DI,AX
14. MOV DS,AX ;CS不可以改
15. SUB 10[SI],AX ;si di 不可以同时出现
二.
SUB [BP], BX 寄存器间接寻址方式;30400H;
MOV [BX+DI], SI 基址变址寻址方式;10400H;
ADD ES:[SI], DI 寄存器相对寻址方式;20200H;
MOV 10[BX], DI 寄存器相对寻址方式;10100H;
MOV DS:[100H], BX 相对基址变址寻址方式;10100H

三.
3456H;5678H;1234H;5678H;

四.
1234H;2468H;0008H;1008H;0804H;0408H;0508H;0508H

五.
01H,31H,0FFH,00H,78H,56H,FFH,FFH,00H,24H,00H,0BH,00H,0BH,19H,09H,09H
(从左往右地址变大)
AX=3101H,BX=0023H

六.
汇编语言是一种符号语言,他和机器语言几乎一一对应,但在书写中却是用有字符串组成的助记符
。。。。。。。
(希望对你有帮助)

自学汇编的路过~ 楼主,太不厚道了吧,这种东西要自己做的吧。 第一题:我看了前面几个,是两个操作数的位数对不上,不能这样用的··· 其他的 懒得看了,自己慢慢做吧,给五百分也懒得帮你做了,哪有这样的啊! 楼主好懒。

八位和十六位寄存器不能同时运算

哈哈

  • 汇编语言程序是什么
    答:计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。 1. 机器语言 电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机...
  • 程序设计语言通常被分为哪3类?它们有什么区别?
    答:占用主存容量少。汇编语言与处理器密切相关,且语言程序的通用性、可移植性较差。3、高级语言与具体计算机无关,不针对具体计算机系统。高级语言程序可以在多种计算机上编译后执行,可以直接、有效地控制计算机硬件,易于产生速度快、容量小的高效率目标程序。参考资料来源:百度百科—程序设计语言 ...
  • 程序设计语言包括
    答:程序设计语言包括低级语言和高级语言。程序设计语言,按照语言级别可以分为两大类:低级语言和高级语言。低级语言包括机器语言和汇编语言。低级语言依赖于特定的机器,其使用复杂、繁琐、费时、易出差错,因而程序编写也有一定的难度。机器语言是表示成二进制形式的机器基本指令集,或者是操作码经过符号化的...
  • 汇编语言与汇编语言程序设计是一回事吗,两者各是什么用途,什么含义?_百...
    答:汇编语言是一门涉及硬件的程序设计语言,汇编语言程序设计是计算机专业的一门重要的专业基础课。汇编语言一般与某一种CPU提供的机器指令相对应,人们可以用它直接控制硬件系统进行工作,可以直接访问计算机系统内部各资源,汇编语言程序具有实时性强、执行速度快、代码效率高等优点。
  • 简述计算机程序设计语言(机器语言、汇编语言、高级语言)的优缺点...
    答:二、汇编语言 1、优点:可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。2、缺点:汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难等缺点。三、高级语言 1、优点:形式上接近于算术语言和自然语言,概念上接近于人们通常...
  • .asm是什么文件
    答:ASM是汇编语言源程序的扩展名,汇编语言(Assembly Language)是面向机器的程序设计语言。汇编语言是一种功能很强的程序设计语言,是利用计算机所有硬件特性并能直接控制硬件的语言。打开asm文件有两种方法即笔记本和MasmEdit软件。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)...
  • 计算机程序设计语言有哪些?
    答:计算机语言通常分为三类:即机器语言,汇编语言和高级语言。 (了解内容一) 1. 机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。 用机器语言编写程序,编程人员要首先熟记所用...
  • 程序设计语言通常有哪些?
    答:程序设计语言通常分为:机器语言、汇编语言、高级语言三类。机器语言是最底层的语言,只有“0”和“1”,二进制语言,就像开关一样,0是关,1是通过。汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系。高级语言面向用户的、基本上独立于计算机种类和结构的语言。高级语言的一个命令可以...
  • 程序设计语言分为三大类
    答:计算机程序设计语言大致可以分为机器语言、高级语言、汇编语言三大类。1、机器语言 机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。机器语言使用绝对地址和绝对操作码。不同的计算机...
  • 1.程序设计语言分为哪几种类型?
    答:程序设计语言分为机器语言、汇编语言、高级语言、非过程化语言四种类型。具体如下:1、机器语言 机器语言是由二进制0、1代码指令构成,不同的CPU具有不同的指令系统。机器语言程序难编写、难修改、难维护,需要用户直接对存储空间进行分配,编程效率极低。这种语言已经被渐渐淘汰了。2、汇编语言 汇编语言...