Win32汇编 数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yky__xukai/article/details/82937002

题目1:

定义结构体商品,含编号、品名、单价、数量,输入一个商品信息求其金额并输出(按“%g”格式输出)。
若运行后输入:S001 小刀 4.5 2
则运行结果输出:编号:S001,品名:小刀,单价:4.5,数量:2,金额:9

.386
.model flat, stdcall
option casemap :none
include kernel32.inc
includelib kernel32.lib
includelib	msvcrt.lib		;引用C库文件
printf PROTO C:ptr sbyte,:vararg	;C语言printf函数原型声明
scanf PROTO C:ptr sbyte,:vararg	;C语言scanf函数原型声明
 ;*【*/
.data
Infmt BYTE '%s %s %lf %d',0
Outfmt BYTE '编号:%s,品名:%s,单价:%g,数量:%d,金额:%g',13,10,0
d QWORD 4.0
Book struct
sh BYTE 14 DUP(?)
sm BYTE 20 DUP(?)
dj QWORD 4.0
ces DWORD 4
Book ends
s Book <>
.code
start:
invoke scanf,ADDR Infmt,ADDR s.sh,ADDR s.sm,ADDR s.dj,ADDR s.ces
FLD s.dj
FiMUL s.ces
FSTP d
invoke printf,ADDR Outfmt,ADDR s.sh,ADDR s.sm,s.dj,s.ces,d
invoke ExitProcess,0
end start

 ;*】*/

题目2:

键盘输入2个实数,然后按相反顺序输出这2个实数。
运行后若输入:3.3 4.45
则结果输出:4.45 3.3
运行后若输入:1.35 2.4
则结果输出:2.4 1.35

.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				;⑤数据段
 ;*【*/
a QWORD ?
b QWORD ?
fmt BYTE '%lf %lf',0
fmt2 BYTE '%g %g',0
.CODE
start:
invoke scanf,ADDR fmt,ADDR a,ADDR b
invoke printf,ADDR fmt2,b,a
 

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

题目3:

键盘输入2个整数,然后按相反顺序输出这2个整数。
运行后若输入:3 4
则结果输出:4 3
运行后若输入:1 2
则结果输出:2 1

.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				;⑤数据段
 ;*【*/
a DWORD ?
b DWORD ?
fmt BYTE '%d %d',0
fmt2 BYTE '%d %d',0
.CODE
start:
invoke scanf,ADDR fmt,ADDR a,ADDR b
invoke printf,ADDR fmt2,b,a

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

题目4:

键盘输入一个字母,然后输出该字母。
运行后若输入:A
则结果输出:A
运行后若输入:a
则结果输出:a

.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				;⑤数据段
 ;*【*/
a BYTE ?
fmt byte '%c',0
fmt2 byte '%c',0.
.CODE
start:
invoke scanf,ADDR fmt,ADDR a
invoke printf,ADDR fmt2,DWORD PTR a
 ;*】*/
invoke	ExitProcess,0		;退出进程,返回值为0
end start

 

猜你喜欢

转载自blog.csdn.net/yky__xukai/article/details/82937002