汇编语言程序入门实验一:在dos下对用户输入作出应答
汇编语言程序入门实验一:在dos下对用户输入作出应答
1,背景
成功预言了今天要上计算机操作系统上机实验课,昨天预习后,今天的两个上机实验做得很成功。但是也有一些问题。问题1:学校的系统目前是windows XP,不是windows 7。问题2:学校用的编译器是masm,不是masm32。这两个问题可以归结为1个问题,即跟不上现在主流。至于在dos环境下汇编语言程序设计入门(输出hello world)和masm32的下载、安装与使用,我就不说了,详情请见链接:http://blog.csdn.net/u010043538/article/details/12720447。现在以我自己为例:操作系统:win 7。汇编工具:masm32,我的安装在c盘里。
2,具体实验问题
题目,键盘字符操作
在交互程序中常常需要用户对一个提示作出应答,或通过输入一个字母或数字对菜单的各项进行选择,这是就需要用到INT 21H的单个字符输入功能。请编写一汇编语言程序,功能要求:在程序运行过程中,若通过键盘输入Y,则程序转入标号为YES的程序段显示字符串“YES”;若输入N,则程序转入标号为NO的程序段显示字符串“NO”;输入其它字符,系统无反应;输入字符X,则程序退出。
试根据上述要求,完成下面的程序
3,具体程序
看过本文1,背景中的链接博客后,读者应该知道汇编语言的编写,编译与运行了。因为用记事本写,不具有自动换行与变色等功能,建议读者下载个Notepad++工具,是微软所做的代码编辑器,就像扩大版的记事本功能,类似于word界面。在Notepad++提供了各种语言的自动换行与变色等功能。下载链接为:http://www.duote.com/soft/10265.html。
下载后,安装运行。在语言菜单中选择:Assembly。即可运行。下附具体代码截图:
4,备注
自己是个新手,今天是新学期开计算机操作系统上机实验课第一天。如有不足,欢迎指出,不胜感激。
在此再附上代码吧,方便读者复制:
// @author sunkun
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
ORG 100H
START:JMP GET_KEY
YESSTR DB 'YES','$'
NOSTR DB 'NO','$'
GET_KEY:MOV AH,01H
INT 21H
CMP AL,'Y'
JZ YES
CMP AL,'N'
JZ NO
CMP AL,'X'
JZ DONE
JMP GET_KEY
YES: MOV AX,CS
MOV DS,AX
MOV DX,OFFSET YESSTR
MOV AH,09H
INT 21H
JMP GET_KEY
NO: MOV AX,CS
MOV DS,AX
MOV DX,OFFSET NOSTR
MOV AH,09H
INT 21H
JMP GET_KEY
DONE: MOV AH,4CH
INT 21H
CODE ENDS
END START
汇编语言程序入门实验一:在dos下对用户输入作出应答的更多相关文章
- 汇编语言程序入门实验二:在dos下建立子目录操作
汇编语言程序入门实验二:在dos下建立子目录操作 1,背景 在读此文,并读懂前,建议读者先阅读这两篇博客 1,在dos环境下汇编语言程序设计入门(输出hello world)和masm32的下载.安装 ...
- 汇编学习(三)——汇编语言程序入门
一.寻址方式 1.概念: 一条指令由操作码和操作数构成,操作码是系统定义好的符号,执行指定的操作,操作数即是指令的对象,而寻址方式就是操作数的指定方式 操作码 目的操作数,源操作数 2.寻址方式的三种 ...
- Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while
1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...
- dos下的edit命令使用详解
dos下的edit命令使用详解 来源:网络 作者:未知 edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件. 比如,我想在c盘根目录下编辑一个简单的批处理文件,要求无论当前盘和当 ...
- dos 下 查看和设置classpath的命令
dos 下 查看和设置classpath的命令查看:echo %classpath%设置:set classpath=%classpath%path 其中%classpath%代表以前的值,pa ...
- 9 在C#控制台程序(console)中让用户输入
经过前面那些练习,我们已经熟悉录入一些简单的代码.这些代码可以进行一些简单的运算,在dos窗口打印出一些东西出来.我们现在要开始学习如何把数据从外部输入到我们的程序中. 其实大多数程序的工作是完成下面 ...
- JAVA手记 JAVA入门(安装+Dos下运行)
JAVA入门特供= =,今天设置环境变量后用dos运行的时候发现出现“找不到或无法加载主类”,索性查了些资料重新看了看JAVA入门的部分. 声明:我的笔记本暂时用的是Win10系统,Windows其他 ...
- JAVA设置环境变量和在DOS下运行java程序
在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...
- 如果程序太大而不能在DOS下运行,怎样才能使它在DOS下运行呢?
如果你的程序因太大(超过640KB)而无法在DOS下运行,有两种办法可为该程序提供更多的内存.一种办法是使用覆盖管理程序(overlay manager).覆盖管理程序用来管理程序的模块,并根据需要把 ...
随机推荐
- 《深入浅出嵌入式底层软件开发》—1. ARM汇编编程基础
1.1 ARM CPU寄存器 ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以要搞清楚ARM有哪些寄存器:ARM寄存器分为两类:普通寄存器和状态寄存器:普通寄存器一共有16个,分别为R0——R ...
- Java 炫舞按键功能 DancingPlay (整理)
/** * Java 炫舞按键功能 DancingPlay (整理) * 2016-1-2 深圳 南山平山村 曾剑锋 * * 设计声明: * 1.本次设计是模仿QQ炫舞类游戏,当图标到红色的检测区域时 ...
- Linux初识(转)
文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基本原理.文件存储结构.软链接 ...
- 不可或缺的 sendEmail
还在为Linux下没有便捷的邮件程序苦恼,还在为复杂的邮件服务器架设Google N多网页? 对于小型,便捷的Linux下命令行邮件程序,sendEmail使得这一切变得轻松可行.一起来看看吧. 一. ...
- Arduino运行时突然[卡死在某一行/立即重启/串口输出乱码/程序执行不正常]的可能原因
1.这一行是分配内存,而内存不够了(Arduino uno只有2k) 2.内存本身已经只剩一点点了,于是就有莫名其妙的问题 3.没有调用Wire.begin().xx.setup()之类的操作!
- objective-C 中两种实现动画的方法
第一种方法: [UIView beginAnimations:@"Curl"context:nil];//动画开始 [UIView setAnimationDuration:1.2 ...
- Effective java笔记4--方法
一.检查参数的有效性 极大多数方法和构造函数都会对于传递给它们的参数值有某些限制. 对于公有的方法,使用Javadoc @throws标签(tag)可以使文档中记录下“一旦针对参数值的限制被违反之后将 ...
- Delphi 实现16进制转字符串及字符串(中文)转16进制
//-----------------------------------------------//16进制字符转整数,16进制字符与字符串转换中间函数//--------------------- ...
- C#读写文件总结
1.使用FileStream读写文件 文件头: using System; using System.Collections.Generic; using System.Text; using ...
- 开发环境配置(netbeans+ant迁移到eclipse+maven)
新公司入职,接手一个离职人员的项目,拿到的源码是以一个压缩包,用netbeans开发,ant管理:前端:jsp+extjs,后端:springmvc+hibernate+activiti+spring ...