zoukankan      html  css  js  c++  java
  • 汇编语言程序入门实验一:在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
    	  
    


     

  • 相关阅读:
    ACM: POJ 1401 Factorial-数论专题-水题
    ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法
    ACM: HDU 1028 Ignatius and the Princess III-DP
    ACM: HDU 2563 统计问题-DFS+打表
    ACM: How many integers can you find-数论专题-容斥原理的简单应用+GCD
    ACM: Happy 2004-数论专题-因子求和-快速幂
    ACM:a^b%p-数论-快速幂-快速乘
    ACM: 强化训练-Beautiful People-最长递增子序列变形-DP
    POJ 1472 Instant Complexity 应该叫它编程题。。
    POJ 3393 Lucky and Good Months by Gregorian Calendar 模拟题
  • 原文地址:https://www.cnblogs.com/riskyer/p/3370826.html
Copyright © 2011-2022 走看看