導航:首頁 > 編程語言 > 減法的匯編程序

減法的匯編程序

發布時間:2023-09-20 21:17:17

① 用匯編語言編寫多位元組壓縮bcd碼減法程序,要求顯示被減數,減數及結果

;修改'899',和'999'的長度,即可計算任意長度的相加
;如d10db'18929387499'
;d12db'18234287439'
;補充,這是相加,你要求是相減,搞差了,減法的附在後面

dsegsegment
d10db'899'
len1equ$-d10;注意d10與d12長度相同,可以做不同,但比較麻煩,這里沒做
d11db'+'
d12db'999';長度與d10相同
d13db'=','$'
d2dblen1+1p(0),'$'
dsegends

assumecs:cseg,ds:dseg
csegsegment
start:
movax,dseg
movds,ax

movah,9
leadx,d10
int21h

leasi,d10
leadi,d12
leabx,d2
addsi,len1-1;指向個位數位置
adddi,len1-1;指向個位數位置
addbx,len1;指向個位數位置
movcx,len1;計算器

clc;清除cf
c0:
movah,0;清除ah
moval,[si];取對應位置上的數字相加
andal,0FH;
movdl,[di];
anddl,0FH;
addal,dl;相加
aaa;調整
addal,[bx];加上可能的進位
aaa;再調整
mov[bx],al;保存到對應的位置上
mov[bx-1],ah;可能存在的進位,保存到對應的位置上
decsi;下一位相加
decdi
decbx
loopc0

movcx,len1+1
leabx,d2
c1:
xorbyteptr[bx],30H;將結果轉換為ascII值
incbx
loopc1

movcx,len1
leabx,d2
c2:
moval,[bx];查找結果中,第1個結果不是0的數字
cmpal,30H;從此開始顯示結果,以免出現0123這樣的結果
jnzp0
incbx
loopc2
p0:
movdx,bx
movah,9
int21h

movah,4ch
int21h
csegends
endstart

;這是減法的代碼
;有個bug,被減數必須大於減數時才正確。
;暫時先這樣
dsegsegment
d10db'991'
len1equ$-d10;注意d10與d12長度相同,可以做不同,但比較麻煩,這里沒做
d11db'-'
d12db'192';長度與d10相同
d13db'=','$'
d2dblen1+1p(0),'$'
dsegends

assumecs:cseg,ds:dseg
csegsegment
start:
movax,dseg
movds,ax

movah,9
leadx,d10
int21h

leasi,d10
leadi,d12
leabx,d2
addsi,len1-1;指向個位數位置
adddi,len1-1;指向個位數位置
addbx,len1;指向個位數位置
movcx,len1;計算器

clc;清除cf
c0:
movah,0;清除ah
moval,[si];取對應位置上的數字相加
andal,0FH;
movdl,[di];
anddl,0FH;

subal,[bx];減去可能的借位
aas;再調整

subal,dl;相減
aas;調整

negah;如有借位,轉換為正數1
mov[bx],al;保存到對應的位置上
mov[bx-1],ah;可能存在的進位,保存到對應的位置上
decsi;下一位相加
decdi
decbx
loopc0

movcx,len1+1
leabx,d2
c1:
xorbyteptr[bx],30H;將結果轉換為ascII值
incbx
loopc1

movcx,len1
leabx,d2
c2:
moval,[bx];查找結果中,第1個結果不是0的數字
cmpal,30H;從此開始顯示結果,以免出現0123這樣的結果
jnzp0
incbx
loopc2
p0:
movdx,bx
movah,9
int21h

movah,4ch
int21h
csegends
endstart

② 實現兩個數相減的匯編語言程序

;80x86匯編程序例子:
CLS ;清進桐梁位(借位)標志
MOV BL,0AH ;被減數送BL
MOV CL,05H ;減數銀局送鋒輪讓CL
SUB BL,CL ;兩數相減

閱讀全文

與減法的匯編程序相關的資料

熱點內容
單片機代碼跳掉 瀏覽:447
程序員談薪水壓價 瀏覽:861
榮耀10青春版支持方舟編譯啊 瀏覽:158
最優估計pdf 瀏覽:826
androiddrawtext字體 瀏覽:669
c語言源編輯源程序編譯 瀏覽:821
手裡捏東西真的可以解壓嗎 瀏覽:265
編譯原理畫狀態表 瀏覽:28
用echo命令產生下列輸出 瀏覽:358
在內網如何訪問伺服器 瀏覽:961
java導入oracle資料庫 瀏覽:134
堅朗內開內倒鋁條演算法 瀏覽:259
華為閱讀新建文件夾 瀏覽:770
幻塔如何選擇伺服器 瀏覽:221
解壓先把文件壓到系統盤 瀏覽:822
access壓縮和修復資料庫 瀏覽:791
光纖交換機命令 瀏覽:513
白色桌放什麼文件夾 瀏覽:296
分治演算法思想 瀏覽:151
s曲線加減速演算法 瀏覽:403