用汇编语言如何编译一个程序

用汇编语言如何编译一个程序,第1张

正文如下(复制虚线内文本,粘贴到rqtxt):

------------------------------------

a100

PUSH CS

POP DS

MOV AH,01

MOV CX,2020

INT 10

CLD

MOV DI,01F9

MOV AH,2A

INT 21

MOV AX,CX

PUSH DX

XOR DX,DX

MOV SI,03E8

DIV SI

MOV SI,DX

OR AL,30

STOSB

MOV AX,SI

MOV DL,64

DIV DL

MOV DH,AH

OR AL,30

STOSB

MOV AL,DH

CALL 01A0

INC DI

POP CX

MOV AL,CH

CALL 01A0

INC DI

MOV AL,CL

CALL 01A0

INC DI

MOV AH,2C

INT 21

PUSH DX

MOV AL,CH

CALL 01A0

INC DI

MOV AL,CL

CALL 01A0

INC DI

POP AX

MOV AL,AH

CALL 01A0

INC DI

MOV AH,2A

INT 21

MOV BL,09

MUL BL

MOV SI,01B0

ADD SI,AX

MOV CX,0009

REPZ

MOVSB

MOV AH,03

MOV BH,00

INT 10

MOV DL,15

MOV AH,02

INT 10

MOV AH,09

MOV DX,01F0

INT 21

MOV AH,01

INT 16

JNZ 018E

MOV CX,FFFF

LOOP 0184

MOV AX,0E0D

INT 10

JMP 0109

MOV AH,01

MOV CX,0E0F

INT 10

MOV AX,0E0A

INT 10

MOV AH,4C

INT 21

ADD [BX+SI],AL

MOV AH,00

MOV BH,0A

DIV BH

OR AX,3030

MOV DX,AX

STOSB

MOV AL,AH

STOSB

RET

PUSH BX

JNZ 0221

DB 64

DB 61

JNS 01E5

AND [BX+SI],AH

DEC BP

DB 6F

DB 6E

DB 64

DB 61

JNS 01EE

AND [BX+SI],AH

PUSH SP

JNZ 022A

JNB 022B

DB 61

JNS 01F8

AND [BX+65],DL

DB 64

DB 6E

DB 65

JNB 0236

DB 61

JNS 0229

DB 68

JNZ 024A

JNB 023E

DB 61

JNS 020B

INC SI

JB 0249

DB 64

DB 61

JNS 0212

AND [BX+SI],AH

PUSH BX

DB 61

JZ 025F

JB 0250

DB 61

JNS 021D

AND AL,54

DB 6F

DB 64

DB 61

JNS 0216

DB 69

JNB 0219

XOR DH,[BX+SI]

XOR [BX+SI],DH

SUB AX,3530

SUB AX,3130

AND [BP+SI],DH

XOR [BP+SI],BH

XOR [BX+SI],DH

CS:

XOR [BX+SI],DH

AND [DI+6F],CL

DB 6E

DB 64

DB 61

JNS 0242

AND [BX+SI],AH

AND AL,24

CS:

MOV CX,[9148]

CS:

MOV AX,[914A]

n RQ1com

rcx

120

w

q

------------------------------------

进入DOS模式,先确保rqtxt在当前目录,输入

Debug<rqtxt

当前目录会自动生成rqcom。

再运行rqcom就行了。

你只要不碰电脑,它就一直走,显示当前时间。

我还用汇编写了一个满屏的大钟(效果是电脑半屏数字电子钟),自己写着玩儿;

还有键盘电子琴,有兴趣的可重编一下,要求:

1三个八度音;2屏显电平表,低音绿灯,中音黄灯,高音红灯。

首先,汇编语言是一种语言,一种低级语言,和C,C++,VB是一样的,和编译、解释不是一个概念;

关于解释程序编译程序的解释和关系如下:

A、解释程序

所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。

B、编译程序

这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。

编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。

值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。

在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间。

linux 编译汇编程序常用的有两种,一种是A&T方式的,你gcc 就可以编译了。还有一种是80X86方式,一般是用NASM,NASM你要在安装LINUX时就要添加软件包,或者你进入图型界面,增加NASM软件包,就可以编译了。

编译就是把高级语言变成计算机可以识别的2进制语言, 是对整个写好的程序进行翻译。 最终形成目标文件 解释程序, 是一句一句翻译的, 最终不形成目标文件 汇编程序? 你指的 是汇编语言写的程序吗? 汇编程序一般指编译生成与之等价的 机器语言

不懂你问题是啥意思啊。

高级语言如c语言c++都是易懂的代码,汇编语言是机器识别的语言代码(比较难理解)。

在高级语言执行的过程要转化成机器语言,然后转化成二进制代码,才能执行程序。

编制是用来创建文件连接文件(好像是啊我瞎说的)。汇编是种语言。我的理解!

汇编代码的存储后缀名必须是asm(可用记事本编辑,改后缀名!如:aasm)然后,进入命令提示窗口,键入:masm aasm如果程序正确,之后键入:link aobj,之后键入:aexe回车运行。

当然,在对应磁盘(一般是C盘)还应有MASMEXE、LINKEXE,如果需要检查编译还应该有DEBUGEXE。如果需要的话再Hi我,我给你发~祝好运。

以上就是关于用汇编语言如何编译一个程序全部的内容,包括:用汇编语言如何编译一个程序、编译程序,汇编程序,和解释程序之间有什么区别、Linux系统里如何编译汇编程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9433194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存