汇编语言 输入一个二进制数,求它的平方

供稿:hz-xin.com     日期:2025-01-13
汇编从键盘输入一个数字,求其平方

data segment x db 10 db ? db 10 dup(0) y dw 0 istr db 'Input a numbe(<256):$' crlf db 0dh, 0ah,'$'data endsassume cs:code, ds:datacode segmentstart: mov ax, data mov ds, ax lea dx, istr mov ah,9 int 21h lea dx, x mov ah,0ah int 21h lea dx, crlf mov ah,9 int 21h call convert2bin mov ax, y mov bx, ax mul bx call print mov ah,4ch int 21h;convert string x to numberconvert2bin proc near mov ch,0 mov cl, x[1] mov dl,10 mov bx,0 mov ah,0c0: mov al,x[2+bx] and al,0fh xchg ax, y mul dl xchg ax, y add y, ax inc bx loop c0 retconvert2bin endp;print(ax) in decimalprint proc near xor cx, cx mov bx, 10Q0: xor dx,dx div bx xor dx, 0e30h push dx inc cx cmp ax, 0 jnz Q0Q1: pop ax int 10h loop Q1 retprint endpcode ends end start

data segment x db 10 db ? db 10 dup(0) y dw 0 istr db 'Input a numbe(<256):$' crlf db 0dh, 0ah,'$'data endsassume cs:code, ds:datacode segmentstart: mov ax, data mov ds, ax lea dx, istr mov ah,9 int 21h lea dx, x mov ah,0ah int 21h lea dx, crlf mov ah,9 int 21h call convert2bin mov ax, y call print mov ah,4ch int 21h;convert string x to numberconvert2bin proc near mov ch,0 mov cl, x[1] mov dl,10 mov bx,0 mov ah,0c0: mov al,x[2+bx] and al,0fh xchg ax, y mul dl xchg ax, y add y, ax inc bx loop c0 retconvert2bin endpprint proc near xor cx, cx mov bx, 2Q0: xor dx,dx div bx xor dx, 0e30h push dx inc cx cmp ax, 0 jnz Q0Q1: pop ax int 10h loop Q1 retprint endpcode ends end start

dseg segment
mess1 db "input(0-9):",'$'
mess2 db 0ah,0dh,"answer:",'$'
ans db ?,?,?,?,0dh,0ah,'$'
dseg ends
sseg segment stack
db 80 dup(0)
sseg ends
cseg segment
assume ss:sseg,cs:cseg,ds:dseg
start: mov ax,dseg
mov ds,ax

mov dx,offset mess1
mov ah,09h
int 21h

mov ah,01h
int 21h
and al,0fh

mov bl,10
mul bl
mov bl,al

mov ah,01h
int 21h
and al,0fh
add al,bl

mul al

mov bx,1000
mov dx,0
div bx
add al,30h
mov di,offset ans
mov [di],al

mov ax,dx
mov bl,100
div bl
add al,30h
inc di
mov [di],al

mov al,ah
mov ah,0
mov bl,10
div bl

add ax,3030h
mov ans+2,al
mov ans+3,ah

mov dx,offset mess2
mov ah,09h
int 21h

mov dx,offset ans
mov ah,09h
int 21h

mov ah,08h
int 21h

mov ah,4ch
int 21h
cseg ends
end start
;从这段程序改编,这段是输入一个0-9的数求平方.答得好的有加分!问题补充:

;不是二进制数,是0-99的数求平方。

二进制数1的个数 问题描述 编写C语言程序,从键盘读入一个整数n,然后统 ...
只要把输入的数x%2,如等于1,就计数加1;然后x\/=2;重复上面的操作,直到x==0为止,这时输出1的计数就可以了。

vb中,任意输入一个二进制数,将其转换成十进制数输出
在VB编程语言中,编写一个函数将任意输入的二进制数转换为十进制数输出。该程序包含以下关键部分:1. 定义字符串变量`sHex`和`sBin`用于存储十进制和二进制数。2. 编写`BinToHex`函数,将二进制数转换为十六进制表示。首先,根据二进制字符串长度调整前导零,使其长度为4的倍数。接着,循环处理每四...

C语言 将一个二进制数,转换为对应的十进制数。
include<stdio.h> include<math.h> int main(){ int a[10] = {1,0,0,1,0,1,1,0,0,0};\/\/这里只是预先写好的二进制数,可以自行改为主动输入,主要体现过程 int i = 0;int sum = 0;for(i = 9;i>=0;i--)\/\/9为数组最后一位 { sum = sum + a[i];pow(2,abs(i-9))...

写一函数,对一个16位的二进制数取它的奇数位(从左边起第1位直到最后15...
int calculate(int number){ int result=0x00;int counter=0;int pass=0x02;for(counter=0;counter<8;counter++)result|=(number&(pass<<(counter*2)));return result;}

C语言怎么编写能实现一组二进制数以四个数为一组的输出?
include<stdio.h> include<math.h> int main(){ int number[32],i=0,sum=0,j=0,k=0,ox[8],count=0;fflush(stdin);for(i=0;i<8;i++){ printf("请输入第%d组二进制数(如0001)\\n",i+1);for(j=0;j<4;j++){ scanf("%d",(number+count));count++;} } for(i=0,j=0;...

编程:让用户输入一个数字,显示该数对应的二进制数(4位)。例如,输入...
include <iostream.h> void divideData(const float number, int &integer, float &decimal); \/\/分离出整数和小数部分.void printBinaryForInteger(int &integer); \/\/打印整数部分的二进制形式.void printBinaryForDecimal(float &decimal); \/\/打印小数部分的二进制形式.int main(){ float number;int...

C语言 写一个函数,对一个16位的二进制数取出它的奇数位
你这个32位数是什么意思,二进制的还是十进制的?二进制的直接把数和0x55555555做&操作即可 十进制的话,32位数肯定没法用long保存,只能用一个长33的字符串长存储了.如果是字符串的话,直接从首部开始,每隔一个字符就赋值'0'

输入一个只包含0和1的二进制数(不确定多少位,但至多5位),打印出相应的...
二位是0,所以剩2的1次方.三位是1 所以剩2的2次方.也就是1*2的0次方+0*2的1次方+1*2的2次方 相加总数=5 你可以用XP的附件的计算器验证一下.再举个例子:1011 (记得是从右往左看)从右往左数分别1101 1*2的0次方+1*2的1次方+0*2的2次方+1*2的3次方=11 还有可以转其它六进制.八...

怎么在C语言里面输入二进制数字?
define N 4 include<math.h> include<stdio.h> void main(){ long a[N],*p,sum=0,che=pow(10,N-1);printf("请输入二进制数:");for(p=a;p<a+N;p++)scanf("%1ld",p);for(p=a;p

用C语言编写程序,输入一个字符,输出它的字符值和ASCII值
1、计算机中的所有数据都是以二进制存储的,因此字符也是以二进制存储且占用一个字节,在c语言中可以把char型当作只有一个字节的有符号整数,8位有符号,最大正值就是127了。2、例如:可以这样使用循环的 include <stdio.h> include <stdlib.h> int main(){ char c;int i;printf("please input ...