汇编语言程序入门实验一:在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

最新文章

  1. tomcat之一:指定tomcat运行时JDK版本
  2. 将List转换为二维数组(result)
  3. json时间格式化问题
  4. 转!!数据库 第一范式(1NF) 第二范式(2NF) 第三范式(3NF)的 联系和区别
  5. tar学习使用心得
  6. 清除VS2012生成的不必要文件
  7. 项目中遇到的 linq datatable select
  8. Database事件研究
  9. 今天用css做了一个QQ登录页面
  10. Codevs 3305 水果姐逛水果街Ⅱ 倍增LCA
  11. android之LruCache源代码解析
  12. Bootstrap table使用心得---thead与td无法对齐的问题
  13. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](七)
  14. 在实训时做的项目出现的ajax json数据传送的问题
  15. Vue创建头部组件示例
  16. Android中糟糕的AsyncTask
  17. 关于const的一些注意事项
  18. [ASP.NET]JQuery直接调用asp.net后台WebMethod方法
  19. 在CentOS/RHEL上设置SSH免密码登录
  20. sql传统的拼接带来的危害

热门文章

  1. Bitset位图
  2. Maven之 学习资料
  3. setAttribute一个兼容性问题
  4. activiti 学习( 三 ) 之 流程启动者
  5. unity, audio falloff
  6. PHP中最容易忘记的一些知识点总结
  7. unable to load default svn client
  8. bjfu1262 优先队列
  9. 修改 AndroidManifest minSdkVersion 的方法
  10. Invalid encoding name "UTF8". 报错 XML