win32汇编学习笔记之输出格式控制

汇编学习笔记整理之4种数据类型的输入输出

鉴于之前学习代码的时候总是因为没有在课后整理笔记并且重新复习而导致知识点掌握不熟练的后果,现在将每次学习的笔记整理至csdn博客中。以便更好的督促自己学习

一、实数的输入输出

.386				;选择的处理器
.model flat, stdcall	
option casemap:none		;指明标识符大小写敏感
include	kernel32.inc	;要引用的头文件
includelib	kernel32.lib	;要引用的库文件
includelib	msvcrt.lib	;引用C库文件
scanf PROTO C:DWORD,:vararg	;C语言scanf函数原型声明
printf PROTO C:DWORD,:vararg;C语言printf函数原型声明
.data				;⑤数据段
 ;*【*/
fmt BYTE '%.3lf %.3lf',0	;12.300 4.560
fmt2 BYTE '%lf %lf',0		;12.300000 4.560000
fmt3 BYTE '%g %g',0 		;%g不输出无意义的0	12.3 4.56
fmt4 byte '%+.3lf%-+10.3lfi'		 ;输出显示3位		+12.300-4.560
s1 QWORD ?
s2 QWORD ?
.code
start:
invoke scanf,ADDR fmt2,ADDR s1,ADDR s2
invoke printf,ADDR fmt3,s2,s1

 ;*】*/
invoke	ExitProcess,0		;退出进程,返回值为0
end start

二、字符数据的输入输出

.386				;选择的处理器
.model flat, stdcall	
option casemap:none		;指明标识符大小写敏感
include	kernel32.inc	;要引用的头文件
includelib	kernel32.lib	;要引用的库文件
includelib	msvcrt.lib	;引用C库文件
scanf PROTO C:DWORD,:vararg	;C语言scanf函数原型声明
printf PROTO C:DWORD,:vararg;C语言printf函数原型声明
.data				;⑤数据段
 ;*【*/
s1 byte ?
s2 byte ?
fmt byte '%c %c',0			;输出为 :A B
fmt1 byte '"%c" %c',0		;输出为 :"A" B
fmt2 byte " '%c' %c ",0	;输出为 :'A' B
.code
start:
invoke scanf,ADDR fmt,ADDR s1,ADDR s2
invoke printf,ADDR fmt,DWORD PTR s1,DWORD PTR s2		;此处要进行强制类型转化
 ;*】*/
invoke	ExitProcess,0		;退出进程,返回值为0
end start

三、整形数据的输入输出

.386				;选择的处理器
.model flat, stdcall	
option casemap:none		;指明标识符大小写敏感
include	kernel32.inc	;要引用的头文件
includelib	kernel32.lib	;要引用的库文件
includelib	msvcrt.lib	;引用C库文件
scanf PROTO C:DWORD,:vararg	;C语言scanf函数原型声明
printf PROTO C:DWORD,:vararg;C语言printf函数原型声明
.data				;⑤数据段
 ;*【*/
s1 DWORD ?
s2 DWORD ?
fmt byte '%d %d',0			;输出为: 2 3
.code
start:
invoke scanf,ADDR fmt,ADDR s1,ADDR s2
invoke printf,ADDR fmt,s1,s2		;此处要进行强制类型转化
 ;*】*/
invoke	ExitProcess,0		;退出进程,返回值为0
end start

四、字符串数据的输入输出

.386				;选择的处理器
.model flat, stdcall	
option casemap:none		;指明标识符大小写敏感
include	kernel32.inc	;要引用的头文件
includelib	kernel32.lib	;要引用的库文件
includelib	msvcrt.lib	;引用C库文件
scanf PROTO C:DWORD,:vararg	;C语言scanf函数原型声明
printf PROTO C:DWORD,:vararg;C语言printf函数原型声明
.data				;⑤数据段
 ;*【*/
s1 BYTE 80 DUP(0)
s2 BYTE 80 DUP(0)
fmt byte '%s %s',0			;输出为:
.code
start:
invoke scanf,ADDR fmt,ADDR s1,ADDR s2	;字符串输出即输出字符串的地址
invoke printf,ADDR fmt,s1,s2
 ;*】*/
invoke	ExitProcess,0		;退出进程,返回值为0
end start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值