組合語言的程式設計題!急~~!
有100個學生成績,存放在以data為首址的位元組儲存單元中。
試統計其中90(含90)以上的人數,60—90(含60)之間的人數,60以下的人數,
分別存入max,middle, min三個變數中。
15 分鐘前 做而論道 | 十七級 最快回答
assume ds:qq, cs:cc
qq segment
data dw 76, 69, 84, 90, 73, 88, 99, 63, 100, 80 ;這裡可寫100個成績
dw 78, 78 ,74, 79, 72, 78, 77, 76, 76, 75
nnn equ ($ - data) / 2
s6 dw 0
s7 dw 0
s8 dw 0
s9 dw 0
s10 dw 0
message1 db '60-69 number:', '$'
lll equ $ - message1
message2 db '70-79 number:', '$'
message3 db '80-89 number:', '$'
message4 db '90-99 number:', '$'
message5 db '100 number:', '$'
qq ends
cc segment
start:
mov ax, qq
mov ds, ax
call count
call display
mov ax, 4c00h
int 21h
;------------------------
count proc near
mov cx, nnn
mov si, 0
next:
mov ax, data[si]
mov bl, 10
div bl
mov ah, 0
mov bx, ax
sub bx, 6
shl bx, 1
inc s6[bx]
add si, 2
loop next
retcount endp
;------------------------
display proc near
mov cx, 5
mov si, 0
mov di, 0
rotate:
mov ah, 9
lea dx, message1
add dx, di
int 21h
mov ax, s6[si]
mov bl, 10
div bl
mov bx, ax
mov ah, 2h
mov dl, bl
cmp bl, 0
jz nexw
add dl, 30h
int 21h
nexw:
mov dl, bh
add dl, 30h
int 21h
add si, 2
add di, lll
call crlf
loop rotate
retdisplay endp
;------------------------
crlf proc near
mov ah, 2h
mov dl, 0dh
int 21h
mov dl, 0ah
int 21h
retcrlf endp
;------------------------
cc ends
end start
;***********************************==
程式執行結果如下:
c:\masm>ww
60-69 number:2
70-79 number:12
80-89 number:3
90-99 number:2
100 number:1
;***********************************==
提問者評價:謝謝你,很及時~
組合語言 80x86定址方式
1 立即定址方式 立即定址方式中指令的運算元是8位或16位立即數,並直接出現在指令中。例如 mov al,10h 源運算元為立即定址 執行後al 10h mov ax,0a48h 源運算元為立即定址 執行後ax 0a48h 立即定址只能用於源運算元,不能用於目的運算元。2 暫存器定址方式 暫存器定址...
80x86組合語言定址方式介紹
運算元直接包含在指令 中,可以是8或者16位。立即數作為指令的一部分,直接從biu指令佇列取出,因此速度更快。唯一缺點 只能作為源運算元。指令中所需的運算元在cpu某個暫存器中,可以是8位 16位段暫存器,這個操作完全在cpu內部,因此執行也很快。以下指令需要cpu以外的東西參與用符號或者常數表示 ...
80x86組合語言學習筆記(三)
今天上午開始看組合語言程式設計初步,這一章分為 組合語言語句 變數和標號 常用偽指令語句和源程式組織 順序程式設計 分支程式設計 迴圈程式設計這幾塊,這次總結一下組合語言的語句。首先組合語言的語句分為指令語句 偽指令語句和巨集指令語句,其中指令語句是可以被譯成機器指令的語句,例如將某運算元從乙個暫存...