;c程式轉彙編(或運算鏈結)
datas segment
a dw
5b dw
6cc dw
7d dw
8m dw
2n dw
2string db
6dup(?)
datas ends
codes segment
assume
cs:codes, ds:
datas
start:
movax,datas
mov ds,ax ;
把需要比較的兩個數字放入兩個暫存器中
movax,a
movbx,b
cmpax,bx
jb rm ;
當amov m,0
;當a>b時為假所以m賦值為0
;上述內容給等價於m=a<>>b
movax,cc
movbx,d
cmpax,cc
jarn
mov n,0
;上述內容給等價於n=c>d
jmpexit
rm:mov m,1
jmpexit
rn:mov n,1
jmpexit
exit:
movsi,offset string
movax,m
andal,0fh
addal,30h
mov[si],al
;把m轉化為ascii碼並存入string中
xorcx,cx
mov cl,3
;上述兩句設定迴圈次數
lp:inc
si
mov byte ptr [si],20h ;
20h代表空格
loop lp
;利用迴圈新增3個空格 代替\t
incsi
movax,n
andal,0fh
addal,30h
mov[si],al
;把n轉化為ascii碼並存入string中
mov byte ptr [si+1],'$'
;為字串string加上結束符
;c程式轉彙編(與運算鏈結)
2datas segment
3 a dw 5
4 b dw 6
5 cc dw 7
6 d dw 8
7 m dw 2
8 n dw 2
9 string db 6
dup(?)
10datas ends
11codes segment
12 assume cs:codes, ds:
datas
13start:
14mov
ax,datas
15mov ds,ax ;
把需要比較的兩個數字放入兩個暫存器中
1617
movax,a
18mov
bx,b
19cmp
ax,bx
20jbe rm ;
當a<=b時跳轉到rm
21mov m,1
;當a>b時為真所以m賦值為122;
上述內容給等價於m=a>b
23mov
ax,cc
24mov
bx,d
25cmp
ax,cc
26jbe
rn27
mov n,128;
上述內容給等價於n=c>d
29jmp
exit
3031
rm:32
mov m,0
33jmp
exit
34rn:
35mov n,0
36jmp
exit
37exit:
38mov
si,offset string
39mov
ax,m
40and
al,0fh
41add
al,30h
42mov
[si],al43;
把m轉化為ascii碼並存入string中
44xor
cx,cx
45mov cl,346;
上述兩句設定迴圈次數
47lp:
48inc
si49
mov byte ptr [si],20h ;
20h代表空格
50loop lp51;
利用迴圈新增3個空格 代替\t
52inc
si53
movax,n
54and
al,0fh
55add
al,30h
56mov
[si],al57;
把n轉化為ascii碼並存入string中
58mov byte ptr [si+1],'$'
59;為字串string加上結束符
60lea
dx,string
61mov
ah,09h
62int
21h63
movah,4ch
64int
21h65
codes ends
66 end start
彙編 C語言的IF轉彙編
include int main else return 0 對應彙編 如下 00ae1a10 push ebp 棧提公升 00ae1a11 mov ebp,esp 00ae1a13 sub esp,0d8h 00ae1a19 push ebx 儲存現場 00ae1a1a push esi 00ae...
彙編 C語言的for轉彙編
for 變數初始化操作 判斷是否執行迴圈 變數增減操作 提公升堆疊 00f83c00 push ebp 00f83c01 mov ebp,esp 00f83c03 sub esp,0cch 儲存現場 00f83c09 push ebx 00f83c0a push esi 00f83c0b push ...
一 彙編指令與C語言
1 debug模式下,vc 6.0下斷點執行,按ctrl f11可檢視彙編 另外可以用cl c fas yourcppfile.cpp命令列在同目錄生成yourcppfile.asm彙編檔案。2 push將32位運算元壓入堆疊,esp指向棧頂,故esp減去4 位元組 32位,在64位機器上則是8 記...