題目:計算給定函式值
其中,從鍵盤輸入x,y,輸出資料為a。
輸入輸出時候都要求有提示資訊。
考查知識點:分支結構的應用。
**如下:
1;example assembly language program -- 2;
author: karllen3;
date: revised 5/2014
45 .386
6.model flat
78 exitprocess proto near32 stdcall, dwexitcode:
dword
910 include io.h ;
header file for input/output
1112 cr equ 0dh ;
carriage return character
13 lf equ 0ah ;
line feed
1415 .stack 4096
;reserve 4096-byte stack
1617
.data
18 promotx byte "
please enter a number as x
",019 promoty byte "
please enter a number as y
",020 value byte 11
dup(?)
21 answer byte "
the a is
"22 rsa byte 11
dup(?)
23 byte cr,lf,0
24.code
25_start:
26 output promotx ;
ebx = x
27 input value,11
28atod value
29mov
ebx,eax
3031 output promoty ;
eax = y
32 input value,11
33atod value
3435
cmp ebx,0
36jl lzero ;
ebx < 0
3738
cmp ebx,0
39jg oo ;
x>0
40oo:
41cmp eax,0
42jl oneg ;
y<0
43cmp eax,0
;ebx>=0
44jge ltwozero ;
eax>=0
45lzero:
46cmp eax,0
47jl ltwzero ;
eax < 0
48oneg:
49mov eax,0
50dtoa rsa,eax
51output answer
52jmp
endcmp
53ltwzero:
54mov eax,1
55neg
eax56
dtoa rsa,eax
57output answer
58jmp
endcmp
59ltwozero:
60mov eax,1
61dtoa rsa,eax
62output answer
63endcmp:
6465 invoke exitprocess, 0
;exit with return code 0
6667 public _start ;
make entry point public
6869 end ;
end of source code
測試結果
組合語言 AT T組合語言
這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...
分段函式(彙編)
第一次寫彙編,兩天從一臉蒙蔽到硬著頭皮寫程式,我做到了,寫出來的時候激動得說不出話 函式 當 x 3時y 3 x 5,當 x 3,y 6 data segment promrt db input x 10000 10000 buffer db 6,6 dup c10 dw 10 x dw out m...
組合語言 實驗10 3 數值顯示
寫給自己的一些題外話 這個題目做了兩天。這幾天狀態一直不太好,書都看不進去,題也看不進去。名稱 dtoc 功能 將word型資料轉變為表示十進位制形式的字串,字串以0位結尾符 引數 ax word型資料 ds si指向字串的首位址 返回 無 應用舉例 程式設計,將資料12666以十進位制的形式在螢幕...