实验6_分支程序设计

合集下载

《程序设计与问题求解》实验指导书

《程序设计与问题求解》实验指导书
系统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在屏幕最下方的“编译”窗口中。 所显示的错误信息中指出该错误所在行号和该错误的性质。我们可根据这些错误信息进行修改。
编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件 eg1-1.exe” 选项。“编译”窗口出现信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。
for (i=1;i<=100;i++) {
sum+=i; } printf("sum=%d\n",sum); }
2. 分析并修改下面程序错误,使之能够正常运行。
错误代码如下: 该程序用于求从 1 到 100 的整数和。 #include <stdio.h> void main() {
int i=1; int sum=0;
2).简单的计算器 用 switch 语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数 1 运算符 op 操作数 2 计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。 编程要求:程序能进行浮点数的算术运算,有用户输入输出提示信息。 提示:因为除法中的除数不能为 0,因此关键在于如何比较浮点变量 data2 和常数 0 是否相等。作为整型 变量跟 0 的比较,简单的==就可以解决。而浮点型等实型变量需要用
if (a==b)
a++;
b++;
printf("a=%d,b=%d",a,b);
}
a=6*/
3.编写程序实现以下功能
1).身高预测 每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)一、实验目的1、掌握分支程序、循环程序的设计方法。

2、熟悉DEBUG程序的使用方法。

3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。

二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。

2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。

三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。

2、预习DEBUG调试程序的使用方法。

3、根据实验内容要求,编写好实验源程序。

四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。

2、汇编、连接源程序,产生.EXE可执行文件。

3、运行程序。

(1) 进入DEBUG。

打入DEBUGT MYPROG.EXE。

MYPROG为所编程序的文件名。

(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。

如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。

(3) 检查程序。

在程序中设置若干断点,以便杳出错误所在。

(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。

五、实验报告要求1、列出程序清单,并给出程序流程图。

2、总结实现数据传送的几种方法,指出它们的区别。

开始3、分析实验中所遇到的一些问题,分析错误原因。

4、说明本实验中是如何使用DEBUG进行调试的。

CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。

《C语言程序设计》课程标准

《C语言程序设计》课程标准

《C语言程序设计》课程标准一、课程性质该课程是人工智能技术应用专业的专业基础课程,目标是让学生全面了解程序设计的总体思路、程序设计的基本算法、结构化程序设计的方法,具有初步的程序设计和程序调试的能力。

它要以《计算机应用基础》课程的学习为基础,也是进一步学习《Python高级编程》、《嵌入式技术应用》《机器学习基础》等课程的基础。

二、课程设计思路本课程主要针对软件程序员、软件测试员等岗位开设。

通过本课程的学习,能够熟练掌握C语言的语法规则以及使用C语言进行结构化程序设计的方法与编程技巧,具备独立完成完整C语言项目的基本技能和专业技能,具备基本的职业能力,并使岗位适应能力与操作技能达到软件开发上岗标准。

本课程的开设还为学习《Python高级编程》、《嵌入式技术应用》《机器学习基础》等后续课程奠定基础。

三、课程目标(一)总体目标通过本课程的学习,使学生掌握C语言程序设计的基础知识和基本技能,树立结构化程序设计的基本思想,养成良好的编程习惯,具备软件开发的基本能力。

同时培养学生良好的分析问题和解决问题的能力及爱岗敬业、严谨细致、探究务实的职业精神和技术意识,为后续的应用性课程和系统开发课程打好软件基础。

(二)具体目标1.专业能力(1)对计算机语言和结构化程序设计有基本的认识;(2)能够熟练应用TC或VC++集成环境设计和调试C语言程序;(3)能够在程序设计过程中熟练运用C语言数据类型、运算符、基本语句、数组、函数、编译预处理命令等基本知识;(4)能够熟练掌握指针、结构体、文件等基本知识;(5)会运用C语言设计解决实际问题的程序,并能完成程序的测试。

2.方法能力(1)培养良好的接受新技术、新应用的能力;(2)培养良好的需求理解能力;(3)培养模块化思维能力;(4)培养良好的学习和总结的能力。

3.社会能力(1)培养良好的团队精神和协作能力。

(2)培养学生认真负责的工作态度和严谨细致的工作作风。

四、课程内容组织与安排本课程以国内外最新程序设计基础课程的教学大纲为参照,以软件开发职业岗位为起点,以实际应用为目标,设计了10个学习子项目。

第6课 多分支结构程序设计ppt(23张PPT)

第6课 多分支结构程序设计ppt(23张PPT)

需先知道两个算术运算数,然后根据四则运算进行计算并 输出运算结果。
在这个过程中,能简单处理运算异常情况,也就是运算符只 能是加、减、乘、除,当运算符为除时,除数不能为零。
新知讲解
2.算法设计
在本例中,输入的数据分别存储在变量 x,y中;输入的运算符存储在变量op中 ,运算结果存储在变量c中。
新知讲解
2.能否使用多分支结构,找出n(n≥10)个数中的最大数?
新知讲解 任务:看天气穿衣
拓展运用
>26度

T恤

20-26度

衬衣

10-20度

毛衣

小于10 度 是
羽绒服
新知讲解
其程序代码如下:
新知讲解
二、多分支结构程序设计实例
编写程序,实现算术四则运算的简易计 算器功能。
新知讲解
1.问题分析
新知讲解
在分支结构程序设计中, 当选择的情 况较多时, Python中提供了if-elif条件 语句。
新知讲解
一、if-elif条件语句
在Python中, if-elif条件语句的一般格式是:
if<条件1>: <语句块1>
elif<条件2>: <语句块2>
…… elif<条件n>:
<语句块n> [else
print("除数不能为零!") else:
print("运算符输入有误!")
新知讲解
4.调试运行
按“F5”键,分别输入运算数和运算符, 观察程序运行结果。
新知讲解
日积月累
捕捉异常可以使用try/except语句。其基本格式为:

程序设计基础课程设计实验

程序设计基础课程设计实验

程序设计基础课程设计实验一、课程目标知识目标:1. 让学生理解程序设计的基本概念,掌握编程语言的语法和结构。

2. 培养学生运用程序设计思想解决问题的能力,包括数据表示、逻辑判断和循环控制等。

3. 使学生了解程序设计的流程,学会编写、调试和优化程序。

技能目标:1. 培养学生运用编程工具进行程序设计和调试的能力。

2. 培养学生独立思考和解决问题的能力,提高编程解题技巧。

3. 培养学生团队协作和沟通能力,能够与他人共同完成程序设计任务。

情感态度价值观目标:1. 培养学生对程序设计的兴趣和热情,激发学生学习编程的积极性。

2. 培养学生勇于尝试、不怕失败的精神,提高学生面对编程挑战的自信心。

3. 引导学生认识到编程在科技发展和社会进步中的重要作用,培养学生的社会责任感和创新意识。

课程性质:本课程为程序设计基础课程,旨在让学生掌握编程基本技能,培养编程思维。

学生特点:学生为初中年级,具备一定的逻辑思维能力,好奇心强,对新鲜事物感兴趣。

教学要求:注重理论与实践相结合,以实例为主线,引导学生主动探索,培养实际编程能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 程序设计基本概念:程序、编程语言、算法等基本概念介绍。

2. 编程环境搭建:安装编程软件,了解编程环境,学会使用开发工具。

3. 语法基础:变量、数据类型、运算符、表达式和语句等。

4. 控制结构:顺序结构、分支结构(if语句)、循环结构(for、while语句)。

5. 函数与模块:函数的定义、调用、参数传递,模块的导入和使用。

6. 数组与列表:数组的概念、使用,列表的创建、操作。

7. 文件操作:文件的打开、读取、写入和关闭。

8. 编程规范与调试:代码风格、命名规则,调试技巧和错误处理。

9. 综合实例分析:分析实际编程案例,学会运用所学知识解决问题。

教学内容安排与进度:第1-2周:程序设计基本概念,编程环境搭建。

第3-4周:语法基础,变量、数据类型、运算符。

程序设计基础实验报告

程序设计基础实验报告

实验一 用C 语言编写简单程序一、实验目的1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。

2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。

3. 正确书写算术表达式、赋值表达式和关系表达式。

4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。

5. 掌握简单的单步调试方法。

二、实验环境Windows XP ;Visual C++ 6.0。

三、实验内容1.在屏幕上显示一个句子“What is a computer?”。

2.求华氏温度150F 对应的摄氏温度。

计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。

3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。

4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。

四、实验要求1. 将上机验证正确的源代码写到实验报告上。

2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。

3.按时提交实验报告。

553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥一、实验目的1.熟练掌握关系表达式的使用。

2.熟练掌握使用else-if 语句实现多分支结构程序设计。

二、实验环境Windows XP ;Visual C++ 6.0。

三、实验内容1.输入x ,计算并输出下列分段函数sign(x)的值。

2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。

按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。

当salary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary 时,rate=45%、deduction=135053.输入一个正整数n ,再输入n 个学生的百分制成绩,统计各等级成绩的个数。

高级语言程序设计实验

高级语言程序设计实验

创新源于实践《高级语言程序设计》课程实验教学手册高级语言程序设计课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。

现将实验报告撰写的有关内容说明如下:1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。

2、实验结束后填写通过后的源程序和对实验的总结。

3、通过后的源程序可以手写也可以打印粘贴。

实验项目一览表学号:姓名:成绩:实验一熟悉C语言编程环境实验目的:1.熟悉C语言编程环境(VC++、Cfree、Turboc2.0等)2.了解C程序的基本框架3.理解程序调试的思想,能找出并改正C程序中的错误实验内容:1.1 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序1.2 编程示例在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。

学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)1.3 编程在屏幕上显示如下网格。

+---+---+| | || | |+---+---+# include <stdio.h>int main(){printf("+---+---+\n");printf("| | |\n");7printf("| | |\n");printf("+---+---+\n");return 0;1.4 调试示例改正下列程序中的错误,在屏幕上显示“Welcome to You !”。

(掌握找错、改错的方法)源程序:# include <stdio.h>int mian(void)//mian改为main{printf(Welcome to You! \n")//括号后加”getchar();return 0;}注:需要修改的语句直接在程序上标注并修改实验总结:学号:姓名:成绩:实验二用C语言编写简单程序实验目的:1.掌握算术表达式和赋值表达式的使用2.掌握基本输出函数的使用3.能够自己编程实现简单的数据处理4. 熟练掌握简单if语句使用5. 熟练掌握for语句的使用6. 掌握简单C程序的查错方法、单步调试实验内容:2.1 调试以下程序,求华氏温度对应的摄氏温度。

Visual FoxPro 6.0 实验及指导

Visual FoxPro 6.0 实验及指导

计算机基础及程序设计(二) (Visual FoxPro 6.0)实 验 指 导编制:韩德目 录实验一 表的建立 (3)实验二 表记录数据的输入、追加和替换 (6)实验三 表的基本操作 (9)实验四 数据库与数据库表的操作 (12)实验五 分支程序设计 (15)实验六 循环程序设计 (19)实验七 查询与视图 (22)实验八 SQL命令的基本使用 (26)实验九 报表和标签设计 (30)实验十 表单设计(一) (34)实验十一 表单设计(二) (41)实验十二 菜单设计 (52)实验十三 简单应用系统设计 (54)实验一 表的建立一、 实验目的:1. 熟悉 Visual FoxPro基本操作环境。

2. 掌握使用表设计器建立和修改表结构的过程。

3. 了解表记录的输入。

二、 实验准备:1.说明本课程实验是前后相关的,从本实验开始,请同学注意保存实验数据。

因此,在开始实验之前,要准备好保存数 据的介质,比如,U盘等。

2.准备,建立一个名为 xsgl 的文件夹。

①在准备好的存储介质上(U盘)②启动 Visual FoxPro。

③假设要把数据存放在软盘中,那么,在 Visual FoxPro的命令窗口中键入命令:set default to <盘符>:\xsgl。

请注意,上述 3 个步骤也是后续各个实验的实验准备,但仅在此给出,以后不再赘述。

三、 实验内容:1. 实验 1-1实验题目:建立学生档案表结构(xsda.dbf)。

实验要求:使用菜单打开表设计器创建表结构,表结构如表 1­1 所示。

表1-1 学生档案(xsda)表结构字段名 类型 宽度学号 C 8姓名 C 8性别 C 2出生日期 D 8班级 C 8党员否 L 1入学成绩 I 4照片 G 4简历 M 4操作步骤:(create)①选择菜单【文件】—【新建】,打开“新建”对话框。

,单击“新建文件”按钮,打开“创建”对话框。

②在“新建”对话框中,选择文件类型为“表”③在“创建”对话框中,确定文件的保存位置为 xsgl 文件夹,在“输入表名:”文本框中输入:xsda,单击“保 存”按钮,打开表设计器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六 分支程序设计
6.1 实验目的
(1)学习转移指令及与转移有关的寻址方式
(2)掌握分支程序的结构
(3)掌握分支程序的设计、调试方法。

6.2 预备知识
汇编语言中,实现分支的条件往往是通过标志寄存器中条件标志的不同状态反映的,执行流程的改变则是通过条件转移和无条件转移实现的。

条件转移指令对前面指令影响的标志位进行判别,决定程序的流向。

如果条件满足则转移,否则执行下一条指令。

下面给出与分支程序设计相关的指令以供参考。

表6-1单标志判断条件转移指令
名称 指令格式 测试条件
测试进位标志 JC tag CF=1
JNC tag CF=0
测试零标志 JZ tag ZF=1
JNZ tag ZF=0
测试溢出标志 JO tag OF=1
JNO tag OF=0
测试奇偶标志 JP/JPE PF=1
JNP/JPO PF=0
测试符号标志 JS tag SF=1
JNS tag SF=0
表6-2两数关系判断条件转移指令
类型 名称 指令格式 测试条件
相等
相等 JE/JZ tag ZF=1,X=Y
不相等 JNE/JNZ tag ZF=0,X!=Y
无符号数 低于/不高于等于 JB/JNAE tag CF=1, X<Y
低于等于/不高于 JBE/JNA tag CF=1∨ZF=1,X<=Y
高于/不低于等于 JA/JNBE tag CF=0∧ZF=0,X>Y
高于等于/不低于 JAE/JNB tag CF=0∨ZF=1,X>=Y
带符号数 小于/不大于等于 JL/JNGE tag (SF⊕OF)=1, X<Y
小于等于/不大于 JLE/JNG tag (SF⊕OF)∨ZF=1,X<=Y
大于/不小于等于 JG/JNLE tag (SF⊕OF)∧ZF=0,X>Y
大于等于/不小于 JGE/JNL tag (SF⊕OF)=0, X>=Y
6.3 实验内容
一、验证实验
1.已知数据段中字节变量CHAR1,编写一段程序将CHAR1由小写字母转变为大写字母,并输出转变前后的字符。

下面给出了采用完整段定义方式编写源程序;
要求:
1)绘制程序流程图;
2)对程序进行汇编和调试,理解分支程序的实现方法;
3)将该程序改写为从键盘读入一个英文字母类字符,并实现大小写转换(如果字符为a-z之间的转换为A-Z之间字符,如果字符为A-Z之间的转换为a-z 之间字符)并输出。

采用简化段定义源程序:
2.下面程序实现了以二进制形式显示一个字符的ASCII码。

请改变第二行的”A”为“6”、6、36H后分别说明运行结果,并做解释。

DATA SEGMENT
A D
B 'A'
B DB '(A)=$'
C DB 'B',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START:MOV AX,DATA
MOV DS,AX
LEA DX,B ;取“'(A)=$'”首地址到DX中
MOV AH,9 ;利用9号DOS系统功能调用显示 (A)=
INT 21H
MOV BL,A ;取要显示的字符到BL中
MOV CL,8 ;循环8次,每次显示一位
NEXT: MOV DL,0 ;2号DOS系统功能调用要求将欲显示的
;字符的ASCII码放到DL中
SAL BL,1 ;欲显示的字符左移一位,移出部分到CF 中 RCL DL,1 ;移出到CF 中的部分移到DL 中
ADD DL,30H ;移入DL 的可能是1,也可能是0,变成ASCII 码 MOV AH,2 ;调2号DOS 系统功能调用显示一位二进制码 INT 21H
DEC CL ;循环次数减1
JNE NEXT ;如果减1后不到0,转NEXT LEA DX,C ;取变量C 的首地址到DX 中
MOV AH,9 ;利用9号DOS 系统功能调用显示单位“B”及回车换行 INT 21H
MOV AH,4CH ;利用4CH 号DOS 系统功能调用退回DOS INT 21H CODE ENDS
END START 二、设计实验部分
1. 编写一个汇编语言程序,实现从键盘读入一个表示年份的正整数(1~9999),判断年份是否是闰年,如果是,输出”Yes!”;如果不是,则输出“No!”。

用下列数值1995,1664,1900,2000检查程序输出结果是否正确。

请画出程序流程图。

提示:闰年的判断规则
如果1个年份不能被4整除,则不是闰年。

如果1个年份能被4整除,但是不能被100整除,则它是闰年。

如果1个年份能被100整除,但是不能被400整除,则它不是闰年。

如果1个年份能被400整除,则它是闰年。

2.编写程序,计算下列函数值。

其中,变量X 和Y 是有符号字类型变量。

⎪⎩

⎨⎧><<=<−+=1010001903010
x x x x x x y
要求:
1)采用简化段定义方式编写源程序; 2)绘制程序流程图;
3)给出程序编译和调试过程; 三、综合调试实验
1. 改写下列程序,显示输出2进制数。

;用查表方法将内存中的字以十六进制显示出来。

data segment
x1 dw 49,298,23456,65530 count db 4
hex db '0123456789ABCDEF' mess db 0dh,0ah,'HEX=$' data ends code segment
assume cs:code,ds:data start:
mov ds,ax
mov si,0
let0:
mov dx,offset mess ;显示提示
mov ah,9
int 21h
mov bx,x1[si] ;取出x1
mov ch,4
mov cl,4
let1:
rol bx,cl ;0031→0310→3100→1003→0031
mov ax,bx ;012A→12A0→2A01→A012→012A
and ax,000fh ;保留最低4位
mov di,ax
mov dl,hex[di] ;查表显示高位、低位
mov ah,2
int 21h
dec ch
jnz let1
add si,2
dec count
jnz let0
out1:
mov ah,4ch
int 21h
code ends
end start
2.下列是一个十进制与十六进制转换的小工具,改写为输入十进制数0~255,显示输出相应的十六进制数。

要求:画出程序流程图,写出实验过程和实验结果分析。

多次输入一个两位十进制数并以十六进制显示出来。

以ESC键结束
data segment
x db 2 dup(?)
mess1 db 0dh,0ah,'decimal=$'
mess2 db 0dh,0ah,'HEX=$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
let0:
mov x,0
mov si,0
mov dx,offset mess1 ;显示提示1
mov ah,9
int 21h
let1:
mov ah,1 ;键盘输入十进制数
int 21h
cmp al,27 ;是ESC键?
jz out1
cmp al,0dh ;回车?
let2 ;是,转let2
jz
and ax,000fh ;去掉ASCII码
mov x[si],al ;保存
inc si
jmp let1
let2:
mov dx,offset mess2 ;显示提示2
mov ah,9
int 21h
cmp si,1 ;判断输入的位数
let3 ;输入了两位数转let3
ja
mov bl,x
mov cl,1
jmp let5 ;只输入1位数则直接去显示let3:
mov al,x
mov cl,10
cl ;形成两位十进制数
mul
add al,x+1
mov ah,0
mov bl,16 ;除以16,转为十六进制div bl
mov bx,ax ;BH为低位,BL为高位;分别显示高位、低位
mov cl,2
let4:
cmp bl,10 ;判断十六进制数码
jl let5
add bl,7 ; >10 则加7
let5:
add bl,30h
mov dl,bl
mov ah,2 ;显示
int 21h
mov bl,bh ;再判断低位dec cl
jnz let4
jmp let0 ;返回let0继续输入out1:
mov ah,4ch
int 21h
code ends
end start。

相关文档
最新文档