1. 题目:计算给定数字的立方值
2.
要求:从键盘输入0至9中任一自然数x,求其立方值。若输入的字符不是0至9之间的数字,则显示错误信息,并要求重新输入。要求有信息提示输入数字、显示计算结果和提示输入错误。
提示:用户输入字符首先判断是否是0至9之间的字符,如果是,则转换为整数并计算其立方值,然后显示结果;如果不是,则显示输入错误信息并等待用户重新输入
训练目的:掌握简单的循环结构,分支结构。
1 ; Example assembly language program --
2 ; Author: karllen
3 ; Date: revised 5/2014
4
5 .386
6 .MODEL FLAT
7
8 ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
9
10 INCLUDE io.h ; header file for input/output
11
12 cr EQU 0dh ; carriage return character
13 Lf EQU 0ah ; line feed
14
15 .STACK 4096 ; reserve 4096-byte stack
16
17 .DATA
18 promot1 BYTE "Enter a number from 0 to 9 to",cr,Lf
19 BYTE "calculate it‘s cubic number",cr,Lf,0
20 promot2 BYTE "The number ",0
21
22 value BYTE 11 DUP(?)
23 warning BYTE "The number is wrong,please enter a new number"
24 BYTE cr,Lf
25 BYTE "from 0 to 9",cr,Lf,0
26 answer BYTE "The number cubic number is"
27 cubicnm BYTE 11 DUP(?)
28 BYTE cr,Lf,0
29 .CODE
30 _start:
31 output promot1
32 output promot2
33 input value,11
34 atod value
35 doWhiCmp:
36 cmp eax,0
37 jl endWhiCmp ;eax < 0
38 cmp eax,9
39 jg endWhiCmp ;eax > 9
40
41 jmp doRight ;0<=eax<=9
42
43
44 endWhiCmp: ;deal the wrong number,to enter new number
45 output warning
46 input value,11
47 atod value
48 jmp doWhiCmp
49
50 doRight:
51 mov ebx,eax
52 mul ebx ;eax = eax * eax
53 mul ebx ;eax = eax * eax *eax
54
55 dtoa cubicnm,eax
56 output answer
57
58 INVOKE ExitProcess, 0 ; exit with return code 0
59
60 PUBLIC _start ; make entry point public
61
62 END ; end of source code
汇编语言-计算立方值
时间: 2024-11-17 08:07:59