Win32彙編 資料型別
阿新 • • 發佈:2019-02-02
題目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