灌灌水...
這個版真乾呢....
把剛剛寫好的東東貼上來灌水...
(其實是不曉得怎麼將東西傳到自己的空間...)
這是抓psp的參數來做四則運算的,必須編譯成.com檔
檔名是a.com的話,執行時就是
c:\>a 371+179 or c:\>a 1478-26 or c:\>a 24*69 or c:\>a 12786/54
就會秀出結果了
;****************************************************************
;* God bless us *
;* ------------------------------------------------------ *
;* AUTHOR: Wang-DungJai *
;* FUNCTION: Hope to pass the exam *
;****************************************************************
.model small
.code
org 82h
para db ?
org 100h
main:
jmp init
number1 dw ?
number2 dw ?
temp dw ?
count db ?
show_flag db 0
error_mes db 'Your input is worng!$'
init:
mov number1,0
mov number2,0
mov si,0
get_number1: mov al,[para + si]
cmp al,'0'
jl operator
cmp al,'9'
jg operator
and al,0fh
xor ah,ah
mov temp,ax
mov ax,number1
mov bx,10
mul bx
add ax,temp
mov number1,ax
inc si
jmp get_number1
operator: cmp al,2ah
jl error
cmp al,2fh
jg error
mov count,al
inc si
get_number2: mov al,[para + si]
cmp al,'0'
jl compute
cmp al,'9'
jg compute
and al,0fh
xor ah,ah
mov temp,ax
mov ax,number2
mov bx,10
mul bx
add ax,temp
mov number2,ax
inc si
jmp get_number2
compute: mov dl,count
cmp dl,'+'
je plus
cmp dl,'-'
je minus
cmp dl,'*'
je multi
cmp dl,'/'
je diff
jmp error
plus: mov ax,number1
add ax,number2
call show_number
jmp exit
minus: mov ax,number1
sub ax,number2
call show_number
jmp exit
multi: mov ax,number1
mov bx,number2
mul bx
call show_number
jmp exit
diff: mov ax,number1
mov bx,number2
xor dx,dx
div bx
call show_number
jmp exit
error: mov dx,offset error_mes
mov ah,09h
int 21h
exit: mov ah,4ch
int 21h
show_number proc
mov bx,10000
mov dx,0
div bx
mov cx,dx
mov dl,al
cmp al,0
jne run1
mov al,show_flag
cmp al,0
je kilo
run1: mov show_flag,1
or dl,30h
mov ah,02h
int 21h
kilo: mov ax,cx
mov bx,1000
mov dx,0
div bx
mov cx,dx
mov dl,al
cmp al,0
jne run2
mov al,show_flag
cmp al,0
je hund
run2: mov show_flag,1
or dl,30h
mov ah,02h
int 21h
hund: mov ax,cx
mov bl,100
div bl
mov cl,ah
mov dl,al
cmp al,0
jne run3
mov al,show_flag
cmp al,0
je ten
run3: mov show_flag,1
or dl,30h
mov ah,02h
int 21h
ten: xor ah,ah
mov al,cl
mov bl,10
div bl
mov cl,ah
mov dl,al
cmp al,0
jne run4
mov al,show_flag
cmp al,0
je dig
run4: or dl,30h
mov ah,02h
int 21h
dig: mov dl,cl
or dl,30h
int 21h
ret
show_number endp
end main
--
┌┌┌┌ Origin: 小魚的紫色花園 <fpg.twbbs.org> 140.112.200.214 ───┐┐┐┐
標題: 灌灌水...
時間: Fri Dec 28 02:21:28 2001
這個版真乾呢....
把剛剛寫好的東東貼上來灌水...
(其實是不曉得怎麼將東西傳到自己的空間...)
這是抓psp的參數來做四則運算的,必須編譯成.com檔
檔名是a.com的話,執行時就是
c:\>a 371+179 or c:\>a 1478-26 or c:\>a 24*69 or c:\>a 12786/54
就會秀出結果了
;****************************************************************
;* God bless us *
;* ------------------------------------------------------ *
;* AUTHOR: Wang-DungJai *
;* FUNCTION: Hope to pass the exam *
;****************************************************************
.model small
.code
org 82h
para db ?
org 100h
main:
jmp init
number1 dw ?
number2 dw ?
temp dw ?
count db ?
show_flag db 0
error_mes db 'Your input is worng!$'
init:
mov number1,0
mov number2,0
mov si,0
get_number1: mov al,[para + si]
cmp al,'0'
jl operator
cmp al,'9'
jg operator
and al,0fh
xor ah,ah
mov temp,ax
mov ax,number1
mov bx,10
mul bx
add ax,temp
mov number1,ax
inc si
jmp get_number1
operator: cmp al,2ah
jl error
cmp al,2fh
jg error
mov count,al
inc si
get_number2: mov al,[para + si]
cmp al,'0'
jl compute
cmp al,'9'
jg compute
and al,0fh
xor ah,ah
mov temp,ax
mov ax,number2
mov bx,10
mul bx
add ax,temp
mov number2,ax
inc si
jmp get_number2
compute: mov dl,count
cmp dl,'+'
je plus
cmp dl,'-'
je minus
cmp dl,'*'
je multi
cmp dl,'/'
je diff
jmp error
plus: mov ax,number1
add ax,number2
call show_number
jmp exit
minus: mov ax,number1
sub ax,number2
call show_number
jmp exit
multi: mov ax,number1
mov bx,number2
mul bx
call show_number
jmp exit
diff: mov ax,number1
mov bx,number2
xor dx,dx
div bx
call show_number
jmp exit
error: mov dx,offset error_mes
mov ah,09h
int 21h
exit: mov ah,4ch
int 21h
show_number proc
mov bx,10000
mov dx,0
div bx
mov cx,dx
mov dl,al
cmp al,0
jne run1
mov al,show_flag
cmp al,0
je kilo
run1: mov show_flag,1
or dl,30h
mov ah,02h
int 21h
kilo: mov ax,cx
mov bx,1000
mov dx,0
div bx
mov cx,dx
mov dl,al
cmp al,0
jne run2
mov al,show_flag
cmp al,0
je hund
run2: mov show_flag,1
or dl,30h
mov ah,02h
int 21h
hund: mov ax,cx
mov bl,100
div bl
mov cl,ah
mov dl,al
cmp al,0
jne run3
mov al,show_flag
cmp al,0
je ten
run3: mov show_flag,1
or dl,30h
mov ah,02h
int 21h
ten: xor ah,ah
mov al,cl
mov bl,10
div bl
mov cl,ah
mov dl,al
cmp al,0
jne run4
mov al,show_flag
cmp al,0
je dig
run4: or dl,30h
mov ah,02h
int 21h
dig: mov dl,cl
or dl,30h
int 21h
ret
show_number endp
end main
--
┌┌┌┌ Origin: 小魚的紫色花園 <fpg.twbbs.org> 140.112.200.214 ───┐┐┐┐
info
因文章內容過長,因此無法取得中間部份內容。您可以登入 https://term.ptt.cc/ 查看完整內容。
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):