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

你可能感兴趣的:(win32汇编学习笔记之输出格式控制)