班級:計算機14-1姓名:許愷
學號:2014011329日期:2016.4.22
一、編寫程式
1.設有字陣列x、y和z,各有10個元素,計算:
z0=x0-y0 z1=x1-y1 z2=x2-y2 z3=x3+y3 z4=x4-y4
z5=x5-y5 z6=x6-y6 z7=x7+y7 z8=x8-y8 z9=x9-y9
要求:x、y兩個陣列的數均為兩位十進位制數,直接放在資料段中,無需從鍵盤輸入,且兩數相加或相減之後是一位或兩位數(有可能是負數)。
輸出:以十進位制形式輸出計算後的結果(即:陣列z的內容)
(1)程式清單:
data segment
x dw 10h,11h,12h,13h,14h,15h,16h,17h,18h,19h
y dw 11h,12h,13h,14h,15h,16h,17h,18h,18h,20h
z dw 10 dup(?)
logic_ruler dw 0010001000b
data ends
code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
mov dx,logic_ruler
mov cx,10
mov bx,0
l1:mov ax,x[bx]
shr dx,1
jc l2
add ax,y[bx]
jmp l3
l2:sub ax,y[bx]
cmp ax,0
jge l3
neg ax
push dx
mov dh,al
mov dl,'-'
mov ah,02h
int 21h
mov al,dh
mov ah,0
pop dx
l3:mov z[bx],ax
push dx
push bx
mov bh,al
mov bl,0ah
div bl
add ah,30h
add al,30h
mov bx,ax
mov dl,bl
mov ah,02h
int 21h
mov dl,bh
mov ah,02h
int 21h
mov dl,' '
mov ah,02h
int 21h
pop bx
pop dx
add bx,2
loop l1
mov ah,4ch
int 21h
main endp
code ends
end start
(2)執行結果(截圖):
二、程式設計體會
真的是難,本以為書上有現成的例題就不著急寫,最後才發現那麼不一樣,浪費好長時間又去修改程式以及優化程式,最終還是做出來了,開始感覺根本做不出來,最後還是做出來了,也許程式設計的魅力就在於此吧,本以為絕對做不到的事情,卻做出來了,太有成就感。
組合語言作業(五)
班級 計算機14 1姓名 許愷 學號 2014011329日期 2016.4.22 一 編寫程式 1.設有字陣列x y和z,各有10個元素,計算 z0 x0 y0 z1 x1 y1 z2 x2 y2 z3 x3 y3 z4 x4 y4 z5 x5 y5 z6 x6 y6 z7 x7 y7 z8 x8...
組合語言作業(六)
班級 計算機14 1姓名 許愷 學號 2014011329日期 2016.4.24 一 編寫程式 1.從鍵盤輸入乙個長度不超過50的字串,然後將該字串原樣輸出。要求 用a號功能呼叫輸入,用9號功能呼叫輸出。1 程式清單 data segment str db 50,50 dup data ends ...
組合語言作業(七)
班級 計算機14 1姓名 許愷 學號 2014011329日期 2016.4.29 一 編寫程式 1.從鍵盤輸入乙個不超過8的個位數,計算該數的階乘,並以十進位制制式輸出。要求 1 輸入資料在主程式中實現 2 計算階乘的功能用子程式實現,子程式的名字為 fac 3 以十進位制形式輸出結果的功能用子程...