Win32汇编 数据类型

题目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

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值