彙編 二則運算

2021-06-17 19:20:56 字數 2407 閱讀 2210

上次寫到可輸入的兩位數相加,這次,為了讓運算更加靈活,可以進行加減運算。思路就是讀取數字,當數字中斷時判斷符號為加號還是減號。再繼續讀取,然後運算時與兩位數相加通過原理。減時用sub一下即可。

datas segment

op1 dw 0

op2 dw 0

operator db ?

result db 10 dup (?)

bufsize db 25

actchar db ?

chartext db 26 dup ('$')

datas ends

stacks segment

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

mov dx,offset bufsize

mov ah,0ah

int 21h

mov si,offset chartext

ss1:mov cl,[si]

cmp cl,30h

jb getcode ;跳轉到ss6,此步為運算符號

cmp cl,39h

ja getcode

sub cl,30h

cbwmov ax,op1

mov bx,10

mul bx

add ax,cx

mov op1,ax

inc si

jmp ss1

getcode:mov bl,[si] ;把運算符號賦給bl

mov operator,bl

jmp ss2

ss2:

inc si

mov cl,[si]

cmp cl,30h

jb ss6

cmp cl,39h

ja ss6 ;跳轉到ss6,讀取接下來的數字

sub cl,30h

cbwmov ax,op2

mov bx,10

mul bx

add ax,cx

mov op2,ax

jmp ss2

ss6:

cmp operator,2dh

jz openjian ;若為減號,跳轉到jian

jnz openjia ;若為加號,跳轉到jia

openjian: call jian

jmp ss11 ;正常退出

openjia: call jia

jmp ss11 ;正常退出

jia proc

ss3:

mov dl,10

mov ah,2

int 21h

mov ax,op1

add ax,op2

mov bx,0

mov cl,10

ss4:div cl

add ah,30h

mov si, offset result

mov [si+bx],ah

inc bx

cbw

cmp al,0

jnz ss4

ss5:dec bx

mov dl,[si+bx]

mov ah,2

int 21h

cmp bx,0

jnz ss5

retjia endp

jian proc

ss7:

mov dl,10

mov ah,2

int 21h

mov ax,op1

sub ax,op2

mov bx,0

mov cl,10

ss8:div cl

add ah,30h

mov si, offset result

mov [si+bx],ah

inc bx

cbw

cmp al,0

jnz ss8

ss9:dec bx

mov dl,[si+bx]

mov ah,2

int 21h

cmp bx,0

jnz ss9

retjian endp

ss11: mov ah,4ch

int 21h

codes ends

end start

其實入門就入到這裡而已,接下來的是與硬體結合的東西,個人不是太有興趣,還是專心學自己的東西,不過,這門東西還是有用,至少讓你知道很原始的東西,所以剛開始感覺很難寫。因為底層,所以黑客和大牛們都是用這個,這個可以有。

WEB 除錯二則

1 有天在頁面上寫了乙個提交頁面的script函式,結果死活不能提交頁面,鬱悶了很久,第二天偶爾和同事看的時候,發現原來有個按鈕的名字叫做submit 和form.submit 重複 於是就不停的提示說,沒有相應的屬性。鬱悶啊鬱悶,低階錯誤!2 中文提交的老問題 發現在url中的中文無法正常提交,頁...

ajax問題二則

今天做乙個 的時候,在使用者登入的時候嘗試了使用ajax的post非同步傳遞方式來驗證使用者 之前只研究過get傳遞方式的,都沒弄過post的 這次趁這個機會嘗試了下post,找了點資料,發現都沒什麼難度,跟get區別不是很大 其實我還是乙個ajax新手。這是真的,因為我對ajax的研究非常少。這裡...

Windows XP搜尋技巧二則

1 讓windows xp的搜尋結果更精準 windows xp預設不會搜尋某些目錄中的檔案,且其對檔案內搜尋的支援也不是很完善,我們可以以下方法讓搜尋的結果更為全面 執行 regedit 命令開啟登錄檔編輯器,定位到 hkey current user software microsoft win...