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