汇编语言编程序

作者&投稿:才旦乳 (若有异议请与网页底部的电邮联系)
用汇编语言编写一个简单程序~


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软件变得得心应手。
参考资料来源:百度百科-汇编语言

首先,你要明白:
1. 一个正数和一个负数相加,结果肯定不会溢出,即结果既不会大于最大正数,也不会小于最小负数;同样道理,两个正数或两个负数相减,结果肯定也不会溢出。另外还有一种特殊情况,即当DATA1为0,DATA2为最小负数的时候,DATA1 - DATA2也会溢出。

2. 若结果大于最大正数,肯定是两个正数相加;若结果小于最小负数,则肯定是两个负数相加;
3. 溢出标志只能判断是否溢出,而不能判断是正溢出,还是负溢出。所以应该先判断OF标志位,若有溢出,接着判断DATA1或者是DATA2的符号,若为正数,则为正溢出;否则为负溢出。

程序如下,我是按在386上编的。
.model small
.386
.dosseg
.stack 1024

.data
;DATA1 dd 81234567h
DATA1 dd 7fffffffh; 最大正数
DATA2 dd 80000000h; 最小负数
;DATA2 dd 1234;
SUM dd ?

.code
.startup

mov eax, DATA1
add eax, DATA2
jo OverFlow
jmp Done

OverFlow:
cmp DATA1, 0
jg PlusOverFlow
mov eax, 80000000h ;最小负数
jmp Done

PlusOverFlow:
mov eax, 7fffffffh ;最大正数

Done:
mov SUM, eax
.exit
end
你可以修改下DATA1和DATA2的值看下结果。

如何编写汇编语言的程序?
答:首先在keil里,设置选项时,在列表选项中的汇编代码一项打勾。见下图 然后编译,编译后,在工程的同一个文件夹下有一个.LST文件,打开就看到了汇编代码,不过,需要自己进行整理,否则,是不能直接作为汇编程序的。 下面是一个例子:这是一个主程序的汇编代码,格式就是这样的。 ; FUNCTION main (BEGIN) ; SOURCE LINE...

汇编语言程序设计
答:采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。2.3.单独cmpsb就是逐一比较8个位;加上rep,循环比较,还是比较这8位...

开发汇编语言源程序的主要步骤有哪些
答:3.绘制流程图 流程图就是用图形的方式把解决问题的算法直观地描述出来。对于一个比较复杂的问题,画出流程图,这有助于对问题的理解以及有助于编写出正确的程序。当然,如果算法比较简单,也可不画流程图。4.分配存储空间和工作单元 用汇编语言编写程序时,需要给程序中的变量指定内存单元地址或指定...

汇编语言是一种什么程序设计语言
答:同时,因为资源的稀缺性,计算机运行的效率也成为那个时代工程师追求的目标。为了更高效地使用计算机,人们设计了高级编程语言,以满足人们对高效简洁编程语言的追求。在编程语言被机器语言和汇编语言更新之后,人们发现了限制程序普及的关键因素——程序的可移植性。有必要设计一个可以独立于计算机硬件在不同...

什么是编译程序和汇编程序?
答:编译程序转换过的叫目标程序,也就是机器语言。编译程序的工作情况有三种:汇编型、解释型和编译型。汇编型编译程序用来将汇编语言编写的程序,按照一一对应的关系,转换成用机器语言表示的程序。解释型编译程序将高级语言程序的一个语句,先解释成为一组机器语言的指令,然后立即执行,执行完了,取下一组...

用汇编语言编一个程序
答:代码如下:; 显示三角形data SEGMENT ORG 100H STAR DB '* ', '$' SPACE DB ' ', '$' ;空格 LINE DB 0DH, 0AH, '$' ;换行data ENDSstack SEGMENT PARA STACK DW 256 DUP(?)stack ENDScode SEGMENT ASSUME CS: code, DS: dataBEGIN: M...

汇编语言编出来的程序是什么样的?
答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植,主要用于单片机的编程!以现在单片机产品主力还是在8位领域,主要应用于汽车应用、消费性电子、电脑及PC周边、电信与通讯...

与高级语言相比汇编语言编写的程序通常是
答:三、编写和调试的复杂性 由于是直接控制硬件,且简单的任务也需要很多汇编语言语句,因此在进行程序设计时必须面面俱到,需要考虑到一切可能的问题,合理调配和使用各种软、硬件资源。这样,就不可避免地加重了程序员的负担。与此相同,在程序调试时,一旦程序的运行出了问题,就很难发现。编程语言有两种...

汇编语言编写程序
答:INPUT: CALL MYINPUT ;子程序,输入与数据->AL mov [si],al LOOP INPUT LEA SI,ADR MOV CX,NUM xor al,al ;AL清零 DON1: MOV AL,[SI]CMP AL,0 JGE DON2 INC DA2 JMP END0 DON2: CMP AL,0 JZ DON3 INC DA1 JMP END0 DON3: inc da3 END0: INC SI dec cx jnz ...

汇编语言是一种什么程序设计语言?
答:比起机器语言,汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在...