定義一組數,判斷這一組資料中的正數,負數和0的個數
datas segment
table db 7,98
,-98,
158,10,
133,-45
,66,-
134,
-122,0
,-33,
0,-99
,0a1 byte 'the number of positive numbers is:!'
a2 byte 'the number of negative numbers is:!'
a3 byte 'the number of 0 is:!'
datas ends
stacks segment
;此處輸入堆疊段**
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
start:
mov ax,datas
mov ds,ax
mov bl,
15;計數
call count
mov si,offset a1 ;調出提示資訊
call output1
add al,
48;顯示正數的個數
mov dl,al
mov ah,
2int
21h
call control
mov si,offset a2
call output1
add ch,
48;顯示負數的個數
mov dl,ch
mov ah,
2int
21h
call control
mov si,offset a3
call output1
add bh,
48;顯示零的個數
mov dl,bh
mov ah,
2int
21h
mov ah,
4ch int 21h
;統計個數
count proc
mov al,
0;正數
mov ch,
0;負數
mov bh,0;零
mov cl,
0;計數
mov dh,
0
mov si,offset table
ll: cmp [si]
,dh jz equal ;相等
js lown ;負數
jns highn ;正數
highn:
add al,
1 add cl,
1 add si,
1 cmp cl,bl
jb ll
jmp cover
lown:
add ch,
1 add cl,
1 add si,
1 cmp cl,bl
jb ll
jmp cover
equal:
add bh,
1 add si,
1 add cl,
1 cmp cl,bl
jb ll
jmp cover
cover:
retcount endp
;輸出函式
output1 proc ;入口引數si
push si
push ax
push dx
o1: mov ax,
[si]
cmp al,
'!';
!為結束標誌
je oover
mov dl,al
mov ah,
2int
21h add si,
1 jmp o1
oover:
pop dx
pop ax
pop si
retoutput1 endp
;回車換行
control proc
push ax
push dx
mov dl,
13 mov ah,
2int
21h mov dl,
10 mov ah,
2int
21h
pop dx
pop ax
retcontrol endp
codes ends
end start
第八次上機實驗課
任務一 任意輸入兩個大於10的整數,將兩數分別反轉 逆序 後兩相乘,如果最後一位是0去掉0,再反轉後輸出 includevoid main int fun int a return num 截圖如圖 任務分割線 任務二 假設乙個數列k表的前兩項是0,1,而之後的每一項為kn 2 kn 1 3 kn ...
第八次實驗報告
加強學生對指標資料型別的理解,熟悉指標的定義,通過指標間接訪問變數。加強學生對指標型別作為引數傳遞的理解。加強學生對字元指標以及將指標作為函式的返回型別的理解。加強學生對使用指針對陣列進行操作的理解。1.問題描述 1 定義乙個整形指標變數p,使它指向乙個整形變數,定義乙個浮點型指標q,使它指向乙個浮...
第八次實驗報告
1 問題描述 定義乙個整型指標變數p,使 yi它指向乙個整型變數a,定義乙個浮點型指標q,使它指向乙個浮點型變數b,同時定義另外乙個整型變數c並賦值初值3 使用指標變數,呼叫scanf函式分別輸入a和b的值。通過指標間接訪問並輸出a b的值。按16進製制方式輸出pq的值以及a b的位址。將p指向c,...