開啟doxbos
更改masm檔案為123(任意),在資料夾中建立檔案123.asm(任意)。
在doxbos程式中 輸入mount c d:\123
輸入c:
開啟123.asm編寫程式
第6、7步可以省略,省略辦法見這篇文章,設定之後就不必每次都輸入
編寫乙個程式,計算存放在ax中的有符號數的絕對值,並將結果存入res單元中
data segment
x dw -40
res dw ?
data ends
stack segment
db 50 dup(?)
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov dx,ax
mov ax,x
cmp ax,0 ;比較指令
jge done ;x>0轉移
neg ax ;求負數的絕對值
執行123.exe
執行成功
反彙編(為了輸入方便,將123.exe改為1.exe,這點大家不用更改,維持你檔名即可)
debug 1.exe
然後用u命令
-u
得到反彙編結果
執行結果,檢視暫存器(t命令或者g命令)
如果用t命令一步一步執行
可以輸入
debug 1.exe
-r-t
...(直到得出結果)
如果用g命令全部執行
debug 1.exe
-g 076a:0018 ;(這裡是你想要執行到的程式位址)
編寫不易,感謝支援。 絕對值排序 C語言
description 輸入n n 100 個整數,按照絕對值從大到小排序後輸出。題目保證對於每乙個測試例項,所有的數的絕對值都不相等。input 輸入資料有多組,每組佔一行,每行的第乙個數字為n,接著是n個整數,n 0表示輸入資料的結束,不做處理。output 對於每個測試例項,輸出排序後的結果,...
絕對值排序(C語言)
problem description 輸入n n 100 個整數,按照絕對值從大到小排序後輸出。題目保證對於每乙個測試例項,所有的數的絕對值都不相等。input 輸入資料有多組,每組佔一行,每行的第乙個數字為n,接著是n個整數,n 0表示輸入資料的結束,不做處理。output 對於每個測試例項,輸...
絕對值相關
abs 是如何來求絕對值的並且看看它的效率如何,所以反彙編出來看了下 sar 0x1f,edx xor edx,eax sub edx,eax 對應c語言 求int a的絕對值 b a 31 a a b a a b 起初還沒想透為什麼這樣就能得到絕對值,再細想,對右移理解有誤 微機原理忘光了,汗顏 ...