所在位置:主页 > 程序语言 > 汇编语言编程

汇编语言编程

发布时间:2023-10-23 05:57来源:www.sf1369.com作者:宇宇

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。 像最简单的编程语言PASCAL语言也属于高级语言.

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

解释李游类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

一.汉语编程定义:

“汉语编程”一种采用汉民族语言文字进行电脑编程的语言系统,支持基于汉语字、词编程,符合计算机符号语言规范,并继续向自然语言发展。

表面汉化菜单的而未将关键字汉化的编程语言,我们不应称之为汉语编程语言,而应称之为“汉化编程”语言,如VB中文版等。

为什么严格来说称“汉语编程”而不称之为“中文编程”呢?因为中国是个多民族的国家,语种众多,有:汉语,藏语,满语等;中文字体也非常多,如篆书、金书、隶书、楷书等。但一般情况下,称中文编程时,也特指汉语编程。

二.汉语编程知多少

已知的汉语编程工具或系统据不完全统计有三十个以上,列出如下:

四.汉语编程的发展和需求

上世纪七十年代以来,中国开发闷桐了一个DOS下的中文编程语言,但由于WINDOWS的流行,还未等推广,就被淘汰。

八十年代开始,台湾已见到繁体中言语版本的LOGO语言。

九十年代,沈志斌的汉语编程初步推出。并申请了“汉语编程单片机”专利。年,易语言成为汉语编程

笔者发现一个有趣的现象:某个国家的最初发明,传到其他国家,就会有所发展,如足球最早是中国发明的,传到欧洲,就发展地比中国要好;乒乓球是英国发明的,传到中国,中国人人人都会打两下,有广大的群众基础,就发展地比其他地区都好。因此笔者认为,编程虽然是外国人发明的,但传到中国来,中国人民以他们的聪明才智,转化为自己的东西,不仅没有固步自封,而且会实现更大的融合。

4.嵌入式系统难以应用汉语吗?

几十年前,有专家预言,汉语不适合计算机,看过了不久,计算机就可以显示汉字了。还有的专家说,中文输入没有英文快,但过了不久,五笔字型推出了,专业打字员输入的速度甚至比英文还快。看来专家学者的预言并不可靠,我们不能迷信个别专家,而是要哪罩销靠自己的努力去改变。

嵌入式系统大多数人已接触到了,打个现实的比方,现在的手机功能已越来越接近电脑了,很多电脑有的功能,手机都有,而且上面所运行的可以是WINCE、Mobile、Linux系统,有的甚至可以用英文写段JAVA代码直接运行了。因此,强求用指令集用汉语确实没有什么优势,但从编程这点考虑,汉语实现嵌入式系统的编程不是没有可能,既然英语可以直接转换为机器码,汉语也可以直接转换为机器码,可以通过汉语直接调用指令集的办法实现。

中国科学技术发展的确晚于欧美国家,中国已错过了前两次技术革命,再也不能错过这第三次了,不能因为别人什么都有了自己就不做了,如果有这样的思想,中国的两弹一星也不要了,大飞机也别造了,嫦娥也别奔月了。

总之,一个新生事物,可能会暂时存在一些缺点,普及和应用汉语编程还有很长的路要走,中国要想成为软件大国,就一定要普及大众化,象打乒乓球一样,人人都能写程序,都可以用自己的母语编程,形成广大的用户基础,就不愁软件行业不发展。笔者不会引用很资深的专家学者的话树立权威,希望大家共同思考这个问题。我相信,在中国人的努力下,一定会开创一个更美好的未来。

七.目前流行的一些汉语编程的简介

由于有些语言已不再开发和推广了,及篇幅关系,下文中以目前一些流行的语言进行介绍。

【易语言】

于2000年开始开发,是一款全中文、全可视、跨平台的编程语言。易语言汉语编程环境由核心层、扩展层、环境层和应用层组成。核心层的易语言及其编译器构成了基础编程平台;扩展层提供了专业编程人员的开发运行平台;环境层提供了用户集成开发环境;应用层支持用户创建本行业、领域的开发平台的框架。

易语言汉语编程环境是一个支持基于汉语字、词编程的、全可视化的、跨主流操作系统平台的编程环境;拥有简、繁汉语以及英语、日语等多语种版本;能与常用的编程语言互相调用;具有充分利用API,COM、DLL、OCX组件,各种主流数据库,各种实用程序等多种资源的接口和支撑工具。

【易语言.飞扬】

于2006年开始开发,是一款简单易学、高效实用、面向对象、跨平台的计算机通用编程语言。它是完全面向对象的编程语言,因而在面向对象机制上,与同为面向对象的Java、C#等编程语言,有相似甚至相同之处。它的语法脱胎自“类C语言”,因而在语法上,与C、C++、Java、C#等编程语言,有相似甚至相同之处。

“易语言.飞扬”的主要特性

更具现代性:完全面向对象,跨平台,支持Unicode、多线程,垃圾自动回收,类型反射,静态编译,动态类型装载等等。

更简单易学:繁琐、晦涩、不常用的语言特性被尽量精简,且补充了很多便于使用的语言特性,支持中英文双语关键字,在语法格式和关键字方面,尽量与现有类似编程语言相同,减少了学习量。

对系统环境的适应和控制能力更强:定义有语言无关的“EF对象模型”,从而允许使用其它各种编程语言来直接书写“易语言.飞扬”本地类,和用“易语言.飞扬”本身书写的类完全融合互补,没有任何差别,可用作快速建立强大高效的本地应用环境,同时可充分利用现有代码资源。

【搭建之星】

原名“发烧积木”属于搭建式的编程工具,完全可视化编程,有各种各样的构件,用拖放的方式拼成程式的流程。

特点:1.安装简单、迅速,纯中文界面。构件丰富,设计过程直观、自由;无需掌握电脑语言,所有编程构件化、命令化、可视化。2.交互式开发,只需要四种类型的“命令”,便可建立各种构件之间的联系;象搭积木一样简单,并可快速的搭建出具有专业水平的软件作品。3.微解释执行,命令解释量小,执行速度快。可以和编译后的可执行文件相媲美。

基本功能:多媒体软件制作,支持多种声音、动画、图像、视频文件格式。有关教学构件,平面直角坐标系、表达式、变量组、函数图像、函数列表、树形浏览等;另外还新了动态流程图、浏览器构件、软件服务号等。提供打包工具,使您即刻将自制软件安装到其它机器上运行;自动对开发项目加密;使您的项目,在未经授权下,别人无法“浏览、修改”项目的构件关系与搭建方法。

【汉语编程】

它的发展早于 1993 年,看起来像Forth,“汉语编程”是中国人自己研发的完全以汉语为描述语言的计算机程序设计语言,它完全具有中国自主知识产权。作为一种计算机语言,它和现在流行的大部分计算机语言具有一些共同的特点,都是人机对话必须的工具语言。但该语言绝非曾流行过的任何一种计算机语言的简单汉化,或是为某种软件制造一个中文环境。这是一个完全由中国人自行开发,由中国人自我掌握全部源代码,从形式到内容全面符合中国人的思维方式,使用汉文字表达的面向对象、面向问题计算机程序设计语言。“汉语编程”具有自成平台、面向对象、面向问题、所见即所得、高度安全性、强大的繁衍功能、高度兼容性以及资源占用少、速度快等特点,开辟了计算机语言发展的新纪元。

【雅奇MIS】

无代码编程的领先者。

该软件采用“可视化语言”,实现了软件开发的“无代码图示编程”。任何人只要会打字,就能在30分钟内学会编程。可视化的无代码编程,使开发效率提高百倍。1小时完成的开发,相当于代码编程方式 2个月的工作量总和。“窗体、报表、计算”等各种功能设计,可达到“秒级”的设计效率。适合于普通办公人员开发“财务、人事、工资、进销存”等各行各业的管理信息系统。

【易乐谷】

“易乐谷ELOGO”是一个以LOGO语言语法为基本语法规则,易语言中文化为实现目标,以流程图为教学辅助,提供幼儿园、小学、退休人员及小学教学师作为入门级学习编程的一种简单工具。本程序由大连大有吴涛易语言软件开发有限公司向幼儿园、小学校、教师、退休人员等编程爱好入门者提供。

本程序使用易语言编程,用易语言实现了一种新的解释型的中文编程语言工具,在易语言中有丰富的图形组件、动画组件,多媒体命令、网络功能、3D支持库,目前这些功能已在易乐谷中体现,大家在学习“易乐谷ELOGO”的同时,也可以学会这些多媒体支持库的应用方法。“易乐谷ELOGO”与易语言的类似地方在于:同样都是中文编程,语法名称等同易语言的风格;不同地方在于:更加符合自然语言,让小学生们更易于理解,并且更利于小学教师的教学工作。

【创新LOGO】

CX-LOGO语言是一种结构化程序设计语言。它是交互式的,为少年儿童提供了良好的编程环境;它是模块化的,便于程序的修改与扩充;它是过程化的,包含了过程、参数、变量等重要概念,并允许递归调用;它有丰富的数据结构类型,有生动的图形处理功能。

CX-LOGO语言独创的流程图工作方式和过程库的建立,可方便的使用“搭积木”的方法,构建“知识”,使学习更容易、操作更简便,学生只需简单的学习就可以操作。

CX-LOGO语言不仅具备多种优秀程序设计语言的优点,而且更接近自然语言,生动有趣,简单易学,它能用直观的运动来体现编程的结果,让少年儿童在游戏中进行思考,在趣味中学习,深受少年儿童的欢迎。通过CX-LOGO语言的教学,以学习一种“玩具”为出发点,可以培养学生学习计算机的兴趣,使他们初步了解计算机是如何工作的,为他们今后学习其他高级程序语言设计铺设道路

CX-LOGO语言是专为我国少年儿童开发的创新平台,孩子们可以在电脑上指挥七色瓢虫移动、转向、行走、发光、响应外界刺激等。这些具有创造性的学习工具所倡导的“做中学”的学习理念,非常适合课堂教学,极大地激发了孩子们学习的兴趣。

学习编程,从何入手

如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!

==============================================

VB方案一 Basic语言 & Visual Basic

优点

(1)Basic 简单易学,很容易上手。

(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。

(3)众多的控件让编程变得象垒积木一样简单。

(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。

缺点

(1)Visual Basic 不是真正的面向对象的开发文具。

(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。

(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。 (Visual Basic 5以及以前的版本产生的代码是伪代码,Visual Basic 6 编译出来的代码是真正的可执行代码。)

综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。

Basic/Visual Basic简介

==============================================

Delphi方案二 Pascal语言 & Delphi

优点

(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。

(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。

(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。

(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。

缺点

Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。

综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。

Pascal语言简介

Delphi简介

==============================================

方案三 C语言 & Visual C++

优点

(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。

(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。

(3)VC是微软制作的产品,与操作系统的结合更加紧密。

缺点

对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。

综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。

C语言简介

==============================================

C++方案四 C++语言 & C++ Builder

优点

(1)C++语言的优点全部得以继承。

(2)完全的可视化。

(3)极强的兼容性,支持OWL、VCL和MFC三大类库。

(4)编译速度非常快。

缺点

由于推出的时间太短,关于它的各种资料还不太多。

综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。

C语言简介

==============================================

方案五 SQL语言 & Power Builder

对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。

[NextPage]

JSP简介

JAVA语言在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品。

JSP与ASP的简单比较

JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。

此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。

运行环境

执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 即可打开缺省页面。

在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是 work 子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用查看源文件菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的 examples 页面提供。

Java Servlet是一种开发Web应用的理想构架。 JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean 组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者。

[NextPage]

SQL语言简介

SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

Structured Query Language包含4个部分:

数据查询语言DQL-Data Query Language SELECT

数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE

数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP

数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK

SQL的历史

在70年代初,E.E.Codd首先提出了关系模型。70年代中期,IBM公司在研制 SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳:

● 国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement”

● 美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127

目前,所有主要的关系数据库管理系统支持某些形式的SQL语言, 大部分数据库打算遵守ANSI SQL89标准。

SQL的优点

SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益匪浅。

(1) 非过程化语言

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

(2) 统一的语言

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:

● 查询数据

● 在表中插入、修改和删除记录

● 建立、修改和删除数据对象

● 控制对数据和数据对象的存取

● 保证数据库一致性和完整性

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

(3) 是所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。

[NextPage]

Java语言简介

一. Java的由来

当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?

Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。

二. Java的定义

Java是一种简单的,面象对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。

Java的开发环境有不同的版本,如sun公司的Java Developers Kit, 简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。

三. Java的特点

1. 平台无关性

平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使 用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。

2. 安全性

Java的编程类似C++,学习过C++的读者将很快掌握Java的精 髓。Java舍弃了C++的指针对存储器地址的直接操作,程序 运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问。

哈哈,又是一个不认真学习的学生.给你说说思路吧:

其实就是利用键盘中断,取得输入的字符,如果小于'0'则跳到报错;如果大于'9'则跳到报错雹搜;输出立方此肆庆值应该不复杂吧,只需森握要你作十六进制到ASCII码的换算就可以了.

试试这个:

DATA SEGMENT

M1 DB PLEASE INPUT A NUMBER(0-9):$,0AH,0DH

C10 DB 10

M2 DB INPUT ERROR!$

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

LEA DX,M1

MOV AH,09H

INT 21H

MOV AH,01H

INT 21H

CMP AL,30H

JL ERROR

CMP AL,39H

JG ERROR

AND AL,0FH

MOV BL,AL

MOV DL,AL

MOV DH,0

MUL BL

MUL DX

MOV CX,5

ONE: DIV C10

PUSH AX

MOV AH,0

LOOP ONE

MOV CX,5

TWO: POP DX

XCHG DH,DL

OR DL,30H

MOV AH,02H

INT 21H

LOOP TWO

JMP L1

ERROR:LEA DX,M2

MOV DX,09H

INT 21H

L1: MOV AH,01H

INT 21H

MOV AX,4C00H

INT 21H

CODE ENDS

END START

DATAS SEGMENT

INFO0 DB 13,10,'伏肆PLEASE INPUT A NUMBER(0~9):$'

INFO1 DB 13,10,'皮销INPUT ERROR!$'

RESULT DB 10 DUP (0)

DATAS ENDS

STACKS SEGMENT

DW 100 DUP (0)

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

AG: MOV DX,OFFSET INFO0

MOV AH,9

INT 21H

MOV AH,1

INT 21H

PUSH AX

MOV DL,13

MOV AH,2

INT 21H

MOV DL,10

INT 21H

POP AX

CMP AL,'0'

JAE NN

ERRORINPUT:

MOV DX,OFFSET INFO1

MOV AH,9

INT 21H

JMP AG

NN: CMP AL,'9'燃厅游

JA ERRORINPUT

AND AL,0FH

MOV BL,AL

MUL BL

MUL BL

CALL DEF

MOV AH,4CH

INT 21H

DEF PROC

MOV SI,OFFSET RESULT

ADD SI,4

MOV [SI+1],$

MOV CX,5

AG1: MOV DX,0

MOV BX,10

DIV BX

PUSH DX

ADD DL,30H

MOV [SI],DL

DEC SI

POP DX

LOOP AG1

MOV CX,4

AG3: INC SI

MOV AL,[SI]

CMP AL,30H

JNZ NOZEARO

LOOP AG3

INC SI

NOZEARO:

MOV DX,SI

MOV AH,9

INT 21H

RET

DEF ENDP

CODES ENDS

END START

引用三楼:

stack segment stack

dw 256 dup(?)

stack ends

data segment

info db 'input error!'正渣乎,13,10,'$'

result db 3 dup(0),13,0,'$'

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov ah,01h

int 21h

cmp al,'0'

jb no

cmp al,'9'

ja no

sub al,'0'

mov ah,0

mov cx,ax

mov bl,al

mul bl

mul cx

mov bx,10

div bx

mov result[2],dl

add result[2],'0'

div bl

mov result[1],ah

add result[1],'0'

mov result[0],al

add result[0],'0'

lea dx,result

mov ah,09h

int 21h

jmp exit

no: lea dx,info

mov ah,09h

int 21h

exit: mov ah,4ch

int 21h

code ends

end start

别管人家怎么弄的,人家是对的!

二举悉楼大哥我除了无语无话可说~

C语言那哥们别凑梁派热闹好不好~