hyfm.net
当前位置:首页 >> 怎样用汇编输出负数 >>

怎样用汇编输出负数

你是指在屏幕上输出吧?输出前做一个判断,如果是负值,则先输出一个'-'号,然后把该数取绝对值,再进行输出.代码如下:;用10进制把ax寄存器中的数值输出到屏幕上 print proc near mov bx,10 test ax,8000h ;判断最高位 jnz p0 ;正数

你是指在屏幕上输出吧?输出前做一个判断,如果是负值,则先输出一个'-'号,然后把该数取绝对值,再进行输出.代码如下:;用10进制把AX寄存器中的数值输出到屏幕上 print proc near mov bx,10 test ax,8000H ;判断最高位 jnz p0 ;正数

纯汇编指令里不存在直接从键盘输入实数的功能指令,只能针对输入字符操作,所以相关的读写功能只能靠自己编写子程序实现.使用高级汇编的话就有现成的输入输出封装函数,自己根据实际需求编写吧.

虽然不是马上就输出,但早晚是要输出的.大致分两种情况: 一、若以十六进制形式输出,则无论输出到何处、无论这个数是正是负,直接输出即可. 二、若以十进制形式输出,且要求送到输出终端(显示器、打印机等),则要分清正负.正数直接输出;若为负数,数字前面一定要加“-”号.

读键其实只是读到哪个键,对与键值是我们人为给它规定的,所以你只要判断是否有那个负数的键值,有过有的话你就给这个键规定是负多少,这样就可以输入负数.

double x; if x>0 {printf("%f",x*x);} if x<0 {printf("%f",2*x);} 大致是这样,c语言的程序规则有点忘记了,语法可能会有小小错误

你定义的类型不一致,前边定义是双精度double的实数,后边输出用的是%f单精度的浮点型,这两个数精度差太多,在c++里double输出用的是%lf,你看看这里是不是,要么把前边类型改成float,要么后边输出改成%lf

COUNT_NUM_0 DATA 30H ;存放0的个数 COUNT_NUM_P DATA 31H ;存放正数个数 COUNT_NUM_N DATA 32H ;存放负数个数 ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV A,#0 MOV 31H,A MOV 32H,A MOV 33H,A MOV R7,#30;

先将这100个数放进一个连续的内存区域(堆栈就挺好用的) 然后用loop循环 逐个取出 放入一个空闲的寄存器 将其值与0比较 小于零的话 将某个设置用来计数的寄存器值加1 最后输出其值就行

ORG 0000HLJMP MAIN0ORG 0030HMAIN0:MOV A,#10HACALL MAIN ;长调用排序程序MOV P1,ASJMP $MAIN: ;子程序入口MOV R6,#00 ;起停标志位LOOP:CLR 00H ;置换标志位MOV R0,#40H ;数据存储单元MOV R7,#10 ;循环次

kcjf.net | snrg.net | ymjm.net | 4405.net | nmmz.net | 网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com