从键盘输入一个0~9之间的数字,输出其立方

作者&投稿:谢柿 (若有异议请与网页底部的电邮联系)
汇编语言题目 从键盘上输入0~9之间的任意一个数字,利用查表的方法计算其平方值,并将计算的结果在~

自己写的:

ASSUME CS:CODE, DS:DATA

DATA SEGMENT

OUT_TABLE DW PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9

;PIFANG_TABLE
PF0 DB 13, 10, '0, 0H $'
PF1 DB 13, 10, '1, 1H $'
PF2 DB 13, 10, '4, 4H $'
PF3 DB 13, 10, '9, 9H $'
PF4 DB 13, 10, '16, 10H $'
PF5 DB 13, 10, '25, 19H $'
PF6 DB 13, 10, '36, 24H $'
PF7 DB 13, 10, '49, 31H $'
PF8 DB 13, 10, '64, 40H $'
PF9 DB 13, 10, '81, 51H $'

DATA ENDS

CODE SEGMENT

START:
MOV AX, DATA
MOV DS, AX

MOV AH, 1
INT 21H ;输入一字符
CMP AL, '0'
JB EXIT
CMP AL, '9'
JA EXIT

AND AL, 0FH ;AL=0~9
MOV AH, 0
MOV BX, AX ;BX=0~9
ADD BX, BX
MOV AX, [BX] ;查表得出结果
LEA DX, OUT_TABLE
ADD DX, AX
MOV AH, 9 ;显示
INT 21H
EXIT:
MOV AX, 4C00H
INT 21H
CODE ENDS
END START

;X86汇编_求0-9立方,显示结果
; MASM5.0编译后,运行无误
code segment
assume cs:code,ds:code
org 100h
start:
push cs
pop ds
Again:lea dx,Tips1
mov ah,9
int 21h ;显示提示
@In:mov ah,0
int 16h ;无回显输入
cmp al,1bh ;Esc退出程序
jz quit
cmp al,'0'
jb @Err
cmp al,'9';数据校验
jbe Q2
@Err:
mov ah,0eh
int 10h
lea dx,Err
jmp Q3
Q2:
mov X,al
sub al,'0'
mov dl,al
mul al
mul dl
lea si,Y
lea di,Z
mov cx,3
Q4:xor dx,dx
div word ptr [di]
or al,'0'
mov [si],al
inc si
inc di
inc di
mov ax,dx
loop Q4
lea dx,Result
Q3:
mov ah,9
int 21h
jmp Again
quit:
mov ah,4ch
int 21h
Err db 0dh,0ah,'INPUT ERROR!$'
Tips1 db 0dh,0ah,'Input(0-9),Esc to Quit: $'
Result db ' '
X db '0^3='
Y db '000$'
z dw 100,10,1
code ends
end start

;-----------------------------
;调试已通过,注释见程序中
;-----------------------------
data segment
str1 db "input a number(0-9):$"
str2 db "input error!$"
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax

;输出提示信息
mov dx,offset str1
mov ah,09h
int 21h

;接收从键盘输入的字符
mov ah,01h
int 21h;结果存于AL中

mov cl,al

cmp cl,'0';与0比较
jb error
cmp cl,'9';与9比较
ja error
;计算立方,结果存于AX中
;------------------------
;这两句很重要,调试了好长时间
;数字只有都减去30h(变成十进制)再做乘法,得到的才是十进制
;否则结果乱七八糟
sub cl,30h
sub al,30h
;------------------------
mul cl;ax=al*cl=cl*cl(实际上ah=0,al=cl*cl)
mul cl;ax=al*cl=cl*cl*cl

mov bx,ax;赋予BX
call crlf;回车换行
call bini;转换为十进制输出

jmp exit
error:
call crlf
mov dx,offset str2
mov ah,09h
int 21h
jmp exit

exit:
mov ah,4ch
int 21h

;-----------------------
;针对多位数,依次分解,然后输出,从最高位开始输出
;为了更好的理解此段程序,最好拿具体数据比如123代入,查看程序的执行流程
bini proc near
;mov cx,1000d
;call bin
mov cx,100d;若结果超过三位数,在此句前面添加类似代码即可,如结果是四位,则添加如上
call bin
mov cx,10d
call bin
mov cx,1d
call bin
ret
bini endp

bin proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,02h
int 21h
ret
bin endp
;----------------------

;-------回车换行子程序----------
crlf proc near
mov dl,0ah
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h
ret
crlf endp
;--------------------------------

code ends
end start

我用pascal语言写
program calculate(input,output)
var
num:integer;
begin
readln(num); (读取你要的数字)
if (num>9) or (num<0) (判断数字是否是0-9中的)
then begin (不是)
writeln('INPUT ERROR!'); (输出错误信息)
exit; (退出主程序)
end
else num:=num*num*num; (是,计算三次方)
writeln(num);(输出答案)
end.


汇编语言 从键盘上输入0~9中任意一个自然数求其立方值。运行成功,但结...
0B62:0019 B700 MOV BH,00 0B62:001B 8B871500 MOV AX,[BX+0015]0B62:001F A32A00 MOV [002A],AX -G1F ;运行到上面这一行,看输入数字的立方是否等于AX即可。please input x(0~9):9 AX=02D9 BX=0012 CX=0056 DX=0000 SP=0000 BP=0000 SI=000...

从键盘输入 ‘0’~‘9’之间的任意一个数字,如果输入的数字大于5...
这个问题没有叙述完整。因为如果输入的数字不大于5,应该输出什么,或者不是数字又怎么输出。现在只给出要求的部分,第一个字符型变量。char ch;ch=getchar();if(ch>'4'&&ch<='9')putchar('1');

编程程序在键盘中输入一个串,把0到9的字数据分别转为零到九的中文大写...
应该是按大写锁定的键

用JAVA编写任意从键盘输入一个0到99999之间的数字判断输入的是几...
import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in);System.out.print("输入0—99999之间的任意数:");int n;n = in.nextInt();int b = Integer.toString(n).length();System.out.println("你输入的数字位数为...

求汇编程序,从键盘上输入一位10进制数,0到9,在7段数码管上正确显示出...
DATA SEGMENT buf DB 3FH,06H,5BH,4FH,66H,6DH,7BH,07H,0FFH,6FH DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START:MOV AX,data MOV DS,AX NEXT:MOV AH,01H INT 21H CMP AL,30H JB EXIT CMP AL,39H JA EXIT MOV BX,OFFSET buf SUB AL,30H XLAT buf MOV DX,280H;接数码...

从键盘输入0-9中任一自然数x求立方值
void main(){ int a;long b;scanf("%d",&a);b=a*a*a;printf("其立方值为:%d\/n",b);}

从键盘上输入字母或0~9的数字,编写程序对其分类
include<stdio.h> include<string.h> int main(){ char str[10];gets(str);for(int i=0;i<10;i++)if(str[i]>='0'&&str[i]<='9')printf("%c",str[i]);printf("\\n");for(int i=0;i<10;i++)if(str[i]>='A'&&str[i]<='z')printf("%c",str[i]);return 0;} ...

为什么数字键盘会有一个空格?
在输入数字时遇到空格的出现,通常不是由数字本身直接引起的,因为数字字符(如0-9)本身不包含空格。这种情况可能由多种原因造成:1. **输入法或键盘设置**:某些输入法或键盘布局可能在输入数字时自动添加空格,尤其是当切换到特定语言或特殊输入模式时。检查并调整输入法设置可能有助于解决此问题。2....

怎样从键盘输入一个0~99999之间的整数
include<stdlib.h> include<stdio.h> char *itoa(int value,char *string,int radix);\/\/此函数在#include<stdlib.h>中 \/\/将radix进制的整数value转换成以‘\\0'结束的字符串存在string中。void main(){ int number=0;printf("请输入一个整数: \\b");scanf("%d",&number);char string[25];...

汇编语言 通过键盘输入0~9数字 按0退出 按1~9用该值乘以100做延时_百度...
输入1~9,则延时1~9秒。 CODE SEGMENT ASSUME CS:CODE ORG 100H START: PUSH CS POP DS PUSH CS POP ES @0: MOV AH,15 INT 10H MOV AH,0 INT

万源市15549229324: 从键盘上输入0~9之间的任意一个数字,利用查表的方法计算其平方值,并将计算的结果在显示器上显示出来. -
尉迟甘寒痛: CODES SEGMENT MAIN PROC FAR ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV AX,STACKS MOV SS,AX MOV SP,OFFSET TOP ;取得TOP的偏移地址,送入SP MOV BX,OFFSET TABLE ...

万源市15549229324: 从键盘输入一个0~9之间的数字,输出该数字构成的方阵,若输入数字0则结束程序 -
尉迟甘寒痛: #includevoid main() {int n,i,j; do{printf("请输入一个数字n(0~9): "); scanf("%d",&n); for(j=1;j<=n;j++) {for(i=1;i<=n;i++) printf("%d ",n); printf("\n"); } } while(n!=0); }

万源市15549229324: 1.输入程序: 从键盘上输入一个字符型数据,若输入一个数字字符('0'~'9') -
尉迟甘寒痛: #include#include void main() { char c; c=getch(); if ( c>='0' && c<='9' ) printf("%d\n",c-'0'); else printf("你输入的是字符'%c',不是数字字符.\n",c); printf("\n\n"); system("pause"); }

万源市15549229324: .从键盘上输入0~9之间的任意一个数字,对于输入的数字进行判断.如果该数字小于等于5并且大于等于3,则输出提示语句“输入的数字偏小”;如果该数字小于3,则输出提示语句“输入的数字太小”;其他情况则输出提示语句“输入的数字偏大”.(使用if语句的嵌套结构) -
尉迟甘寒痛: import java.util.Scanner; public class T3 { private static int s; private static Scanner n; public static void main(String[] args) { n=new Scanner(System.in); s=n.nextInt(); if(3

万源市15549229324: 从键盘输入一个0~9之间的数字,输出其立方
尉迟甘寒痛: ;----------------------------- ;调试已通过,注释见程序中 ;----------------------------- data segment str1 db "input a number(0-9):$" str2 db "input error!$" data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax ;输出提示信...

万源市15549229324: 用c语言从键盘输入一个由0到9构成的字符串,输出整数形式 -
尉迟甘寒痛: #include<stdio.h> #include<stdlib.h> int main() {char str[10];int num;gets(str);num=atoi(str);printf("%d\n",num);return 0; }

万源市15549229324: 编写一个程c序,从键盘输入一个数字字符('0'~'9'),然后将它然后将它转化为相应的整数后在输出. -
尉迟甘寒痛: #include <stdio.h>int main() {printf("%d\n",getchar()-'0'); return 0; }

万源市15549229324: 输入一个字符,判断它是否是0~9之间的字符,并显示相应提示 -
尉迟甘寒痛: #includeint main() { char temp; temp = getchar(); if(temp>='0' && temp <'9') puts("该字符在0-9之间\n"); else puts("该字符不在0-9之间\n"); return 0; }

万源市15549229324: c语言:从键盘输入0~9中的任意三个数 打印出由这三个数字组成的所有的数 -
尉迟甘寒痛: #include void main() {int i,j,k,s[3]; printf("请输入0~9中的任意三个数:\n"); for(i=0;i{scanf("%d",&s[i]);}; printf("你输入的数为\n%d\t%d\t%d\t\n",s[0],s[1],s[2]); printf("结果为:\n"); for(i=0;i {for(j=0;j {if(j==i) continue; for(k=0;k {if(k==i||k...

万源市15549229324: 从键盘输入一串0~9的数字存放在以BUF为首地址的数据区,求出它们的和,并将结果以十六进制形式在下一行显 -
尉迟甘寒痛: INCLUDE Irvine32.inc.data BUF DB 3 DUP(?) scr DB "Please Enter 3 counts:",0;输入3个0-9之间的数,如123回车.code main PROC mov edx,OFFSET scr call WriteString mov edx,OFFSET BUF mov ecx,LENGTHOF BUF+1 call ReadString ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网