汇编语言-整型处理,利用堆栈原样输出

要求:输入任意一个整型数字字符串,并将整型原样输出。

这个子程序主要用于格式化排版,比output直接输出字符串有很大美观性。

 1 ; Example assembly language program --
 2 ; Author: Karllne
 3 ; Date:    revised 05/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
18
19 .DATA                   ; reserve storage for data
20
21         prompt  BYTE  "Please enter a number",cr,Lf,0
22         fl      DWORD ?
23         value   BYTE 11 DUP(?),0
24         char    BYTE 1 DUP(?)
25
26 PUBLIC _start
27 .CODE                           ; start of main program code
28 _start:
29         output prompt
30         input  value,11
31         atod   value
32         push eax
33         call byteInput
34         add  esp,4
35
36         INVOKE  ExitProcess, 0  ; exit with return code 0
37
38 byteInput PROC NEAR32
39           push ebp
40           mov  ebp,esp
41
42           mov  fl,0
43           mov  ebx,10
44           mov  eax,[ebp+8]
45           doWh:
46               cdq
47               idiv ebx
48               push edx
49               inc fl
50               cmp eax,0
51               je  enddoWh
52
53
54               jmp doWh
55           enddoWh:
56
57           doPrint:
58
59                  cmp fl,0
60                  je  enddoPrint
61                  dec fl
62                  pop edx
63                  mov char,dl
64                  add char,‘0‘
65                  output char
66                  jmp doPrint
67           enddoPrint:
68           pop ebp
69           ret
70
71 byteInput ENDP
72
73 END                             ; end of source code

测试结果:

时间: 2024-08-12 21:09:28

汇编语言-整型处理,利用堆栈原样输出的相关文章

从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。

/* 从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号). 例如,输入1234,输出10:输入-1234,输出10. */ #include <stdio.h> #include <string.h> #include<math.h> int abs(int n){ if(n>0) return n; return -n; } int main() { int n,sum=0; scanf("%d",&n); n=a

指针直接赋值为整型AND利用宏定义求结构体成员偏移量

首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是 int *p = 0; 除外,该语句表示指针为空): 所以 int *p = 10; 这样的代码是不允许的.在C++里面直接是error的,即使在一些C编译器中以warning的形式提示,但是warning有的时候也很严重.所以这种东西不要用.从const int到int*是不存在隐士转换的.

在i.jsp 中,url地址栏输入一个参数,值是整型,要求倒着输出

<% String k = request.getParameter("k"); int tt = Integer.parseInt(k); out.println(tt+"<br><br><br>"); while(tt>0){ out.print(tt%10); tt= tt/10; } %> 原文地址:https://www.cnblogs.com/wudashuai/p/9153744.html

编程题:将数字0~5放入一个整型数组,并逆序输出数组

#include<stdio.h> void main() { int i,a[5]; for(i=0;i<5;i++)         /*给数组中元素赋值*/ a[i]=i; for(i=4;i>=0;i--)          /*逆序输出数组中元素值*/ printf("%3d",a[i]); printf("\n"); } 编程题:将数字0~5放入一个整型数组,并逆序输出数组,布布扣,bubuko.com

定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数:然后按顺序每五个数求出一个平均值,放在另一个数组中并输出. var arr = []; var NewArr = []

在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行

package hanqi; import java.util.Scanner; public class Test7 { public static void main(String[] args) { //在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行 int [] x=new int[50]; int a =1; for(int i=0;i<50;i++) { x[i]=a; a+=2; } for(

php长整型原始输出

今天调用webservice时返回一个字段是int64 长整型 原始的数值应该是 190000002101056096 而php返回时转成 1.9000000210106E+17 当传入另一个接口就报错了 解决方法 $c=1.9000000210106E+17; 1 number_format() number_format($c,0,'','') 2 sprintf sprintf("%.0f",$c);

[C]基本数据类型:整型(int)用法详解

1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整型. int代表有符号整数,也就是说,用int声明的变量可以是正数,可以是负数,也可以是零,但是只能是整数.标准规定int的最小取值范围是-32767到32767.int的取值范围因机器而异,但是一定要大于或者等于-32767到32767.一般来说,int占用一个字的内存空间.因此,字长为16位(B

C语言的整型溢出问题(转)

整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视.整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一个buffer overread的事件.在这里写下这篇文章,希望大家都了解一下整型溢出,编译器的行为,以及如何防范,以写出更安全的代码. 什么是整型溢出 C语言的整型问题相信大家并不陌生了.对于整型溢出,分为无符号整型溢出和有符号整型溢出. 对于unsigned整型溢出,C的规范是有定义的——“溢出