80x86組合語言:輸入數字,輸出對應月份的英文
;從鍵盤輸入1,2,3,4,5,6.....12,輸出相對應的月份的英文,
;eg,輸入5,則輸出may。
;不想輸入就輸入e或者E,結束程式。
;要求:輸入前有提示語。
;若輸入的是大於12或者小於0或者是字母,則顯示輸入錯誤。
;做而論道編寫的程式如下:
ASSUME CS:CODE, DS:DATA
;---------------------------------
DATA SEGMENT ;資料段
STRING01 DB 13, 10, 'January $'
CHANG EQU $ - STRING01
STRING02 DB 13, 10, 'February $'
STRING03 DB 13, 10, 'March $'
STRING04 DB 13, 10, 'April $'
STRING05 DB 13, 10, 'May $'
STRING06 DB 13, 10, 'June $'
STRING07 DB 13, 10, 'July $'
STRING08 DB 13, 10, 'August $'
STRING09 DB 13, 10, 'September $'
STRING10 DB 13, 10, 'October $'
STRING11 DB 13, 10, 'November $'
STRING12 DB 13, 10, 'December $'
MSG1 DB 13, 10, 'Input num (1~12, Others EXIT): $'
X DB ?
TEMP DB ?
DATA ENDS
;---------------------------------
CODE SEGMENT ;程式碼段
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
IN_LOOP:
LEA DX, MSG1
MOV AH, 9
INT 21H
MOV X, 0 ;資料清零.
MOV CX, 2 ;輸入2位
_INX:
MOV AH, 1 ;輸入單個字元.
INT 21H
;--------------------------------
CMP AL, 13
JE EXIT_IN
CMP AL, '0'
JB _IN_ERR ;小於'0',不是數字.
CMP AL, '9'
JA _IN_ERR
SUB AL, '0' ;還原為數字
MOV TEMP, AL ;暫存
MOV AL, x
MOV BL, 10 ;老資料乘以10
MUL BL
ADD AL, TEMP ;加上新資料.
MOV x, AL ;儲存.
LOOP _INX ;繼續輸入.
JMP EXIT_IN
;--------------------------------
_IN_ERR:
MOV DL, 8
MOV AH, 2
INT 21H
MOV DL, ' '
INT 21H
MOV DL, 8
INT 21H
JMP _INX
;--------------------------------
EXIT_IN:
MOV AL, x ;
CMP AL, 0
JE EXIT
CMP AL, 12
JA EXIT
DEC AL
LEA DX, STRING01
MOV BL, CHANG
MUL BL
ADD DX, AX
MOV AH, 9
INT 21H
JMP IN_LOOP ;迴圈
EXIT:
MOV AH, 4CH ;結束程式
INT 21H
CODE ENDS
END START
;---------------------------------
執行後,顯示如下:
C:\MASM>M1
Input num (1~12, Others EXIT): 4
April
Input num (1~12, Others EXIT): 3
March
Input num (1~12, Others EXIT): 12
December
Input num (1~12, Others EXIT):
C:\MASM>
提問者評價:謝謝幫忙。
相關推薦
80x86組合語言:輸入數字,輸出對應月份的英文
;從鍵盤輸入1,2,3,4,5,6.....12,輸出相對應的月份的英文,;eg,輸入5,則輸出may。;不想輸入就輸入e或者E,結束程式。;要求:輸入前有提示語。;若輸入的是大於12或者小於0或者是字母,則顯示輸入錯誤。;做而論道編寫的程式如下:ASSUME CS:CODE, DS:DATA;-----
80x86 組合語言:輸入字串、顯示其中數字
從鍵盤輸入一個字串,將其中的數字字元在下一行原樣顯示,而其他字元則不顯示。做而論道程式設計如下: (2014-05-13 17:49 提問者採納)ASSUME CS:CC, DS:QQQQ
演算法:輸入任意一個4位數整數,將該數反序輸出(例如:輸入1354,輸出4531)
程式分析:可以用取餘符來獲取這個四位數的每一位,然後反序重新組合輸出。 #include "stdio.h" int main(void) { int num = 0, opnum = 0; in
【python 2.7】輸入任意字母數字,輸出其對應的莫爾斯碼並播放聲音
技術 ini lease pre 無線 () .com bye eas #python 2.7 #!/usr/bin/env python # -*- coding:utf-8 -*- import os import winsound,sys,time _
課堂測試:輸入整數,求出各位數字的和
option system dia int 整數 != tdi n) .cn import javax.swing.JOptionPane;public class Add { public static void main(String[] args) { Str
用switch,case 輸入一個數字,輸出相對應的福娃的名字
package p1; import java.util.Scanner; /** auther:xiuran-hua function:用switch,case 輸入一個數字,輸出相對應的福娃的名字  
Lua --- 輸入一個數字,輸出階乘
1 function fact(n) 2 if 1 == n then 3 return 1 4 else 5 return n * fact(n-1) 6 end 7 end 8 9 print("Enter a number
Python 運用所學知識製作一個歌詞解析器,要求:輸入時間給出對應歌詞
學了將近兩週python了,遇到了一道挺有意思的題分享一下: 製作一個歌詞解析器,要求:輸入一個時間點能給出對應時間的歌詞 廢話不多說,直接上圖,基本每步都有註釋: mulrc = '''[ti:藍蓮花] [ar:許巍] [al:留聲十年絕版青
編寫程式可一直接收鍵盤字元,輸入小寫字元輸出大寫字元;輸入大寫字元輸出小寫字元;輸入數字不輸出;
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { char str1[] = "abcdefghijklmnopwrstuvwxyz"; char str2[
輸入年份和天數,輸出對應的年、月、日
例:輸入格式:2000 61 輸出格式:2000-3-1 即2000年的第61天是3月1日 //使用指標作為函式引數返回多個函式值 #include <stdio.h> void month_day(int year,int yearda
Java中根據輸入的數字,列印對應的菱形
package test01; import java.util.Scanner; public class test { public static void main(String[] args) { // 根據輸入,控制檯輸出菱形
一段可迴圈輸入數字,經過計算後輸出的dos批處理程式碼,留存參考
技術群裡有新人問這個題目,無聊寫了這個dos批處理。 因為十幾年沒寫dos了,都忘記了,寫這幾行程式碼花了半個小時,所以打算記錄下來,留存備用 @echo off :start set /p mem
輸入數字,逆轉並輸出漢字形式
function reverse(){ var num = arguments[0]; num = num.toString(); var arr = num.split(""); var newArr = arr.reverse(); var word = ['零
解決:輸入一個n輸出以n為長度的二進位制數串的所有可能,並從小到大輸出所有
一開始看到這個問題時,會想到用0和1的排序,去尋找其中的規律,總結出表示式。 看似可行,但是在尋找規律時會發現每種情況之間都有一定的規律但不好用表示式表示出來,如: n=3; 輸出結果為: 000;. 001;. 010;. 011;. 100;. 101;.
輸入一個數字,輸出它的階乘結果。
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> //輸入一個數字,顯示出它的階乘 v
輸入一個int型整數,將其逆序輸出,每個數字後有一個空格。 將n按其逆序輸出,每個數字後有一個空格,輸出佔一行。例如,輸入12354,輸出4 5 3 2 1
#include<stdio.h>#include<math.h> int main(){ int n,a; scanf("%d",&n); while(1) { if(n>=10) { a=n%10; n=n/10; print
80x86組合語言:在螢幕上模擬輸入密碼的過程
用 1 號功能呼叫,可以輸入一個字元,並且當場顯示。這種方法不適於輸入密碼。用 7 號功能呼叫,可以輸入一個字元,當場並不顯示。這就可以輸入密碼了。密碼輸入後,可以在螢幕上顯示出其它的字元,比如《*》
java——從鍵盤上輸入一個年份,並輸入一個月份(數字),輸出該月份有多少天
/* (程式頭部註釋開始) </p><p>* 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * 作 者: 李兆慶
2.7 輸入一個ASCII碼,輸出對應的字元。
試題描述輸入一個ASCII碼,輸出對應的字元。輸入格式一個整數,即字元的ASCII碼,保證存在對應的可見字元。輸出格式一行,包含相應的字元。樣例輸入65樣例輸出A#include<stdio.h&