freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

微機原理課程設(shè)計電子琴設(shè)計(編輯修改稿)

2025-02-14 15:00 本頁面
 

【文章內(nèi)容簡介】 附錄。**********************************矩形繪制宏*******************************draw macro start_x,start_y,end_x,end_y,color local draw_next。local :避免宏重復(fù)調(diào)用時,標(biāo)號的重復(fù)。功能:畫填充的矩形。使用條件:start_x end_x ,start_y end_y push ax 。堆棧 push bx push cx push dx mov ah,0ch 。12號功能,寫像素 mov al,color 。取顏色值 mov bh,0 。頁號0 mov cx,start_x 。列起始點 mov dx,start_y 。行起始點draw_next: int 10h 。畫點 inc cx 。畫橫線 cmp cx,end_x 。比較行是否畫完 jne draw_next 。畫另一行 mov cx, start_x 。另一行的起始點 inc dx 。下一行 cmp dx,end_y 。比較列是否畫完 jne draw_next 。未完繼續(xù)畫 pop dx 。出棧 pop cx pop bx pop ax endm。********************************矩形點陣?yán)L制宏****************************draw_point macro start_x,start_y,end_x,end_y,color local draw_next。local :避免宏重復(fù)調(diào)用時,標(biāo)號的重復(fù)。功能:畫矩形點陣。使用條件:start_x end_x ,start_y end_y push ax push bx push cx push dx mov ah,0ch 。12號功能,寫像素 mov al,color 。設(shè)置顏色 mov bh,0 。頁號0 mov cx,start_x 。列起始點 mov dx,start_y 。行起始點draw_next: int 10h 。畫點 inc cx inc cx 。隔一點 cmp cx,end_x 。比較行是否畫完 jne draw_next 。畫另一行 mov cx, start_x 。另一行的起始點 inc dx inc dx 。隔一行 cmp dx,end_y 。比較列是否畫完 jne draw_next 。未完繼續(xù)畫 pop dx pop cx pop bx pop ax endm。****************************矩形框繪制宏****************************drawsqre macro start_x,start_y,end_x,end_y,color local row_up,row_down,rank_left,rank_right。功能:畫矩形框。 push ax push bx push cx push dx push si mov ah,0ch 。12號功能,寫像素 mov al,color mov bh,0 mov cx,start_x mov dx,start_yrow_up: 。畫上邊 int 10h inc cx cmp cx,end_x jne row_up rank_right: 。畫右邊 int 10h inc dx cmp dx,end_y jne rank_right mov cx, start_x 。下邊起始點 mov si,end_x inc sirow_down: 。畫下邊 int 10h inc cx cmp cx,si jne row_down mov dx,start_y 。左邊起始點 mov cx,start_xrank_left: 。畫左邊 int 10h inc dx cmp dx, end_y jne rank_left pop si pop dx pop cx pop bx pop ax endm 。********************琴鍵處理程序********************do_key proc near。顯示按下 push bx 。bx入棧 mov bx,keynum 。取按鍵編號緩存值,存入bx call key_down 。在屏幕上顯示按下狀態(tài)。按下時琴身點陣顏色改變純白draw_point 40,52,44,92,0fh 。調(diào)用矩形點陣宏,繪制音響孔左點陣draw_point 288,52,292,92,0fh 。調(diào)用矩形點陣宏,繪制音響孔右點陣draw_point 150,34,282,38,0fh 。調(diào)用矩形點陣宏,繪制正面音孔點陣 pop bx 。bx出棧 。發(fā)出聲音 lea bx,tune 。裝入對應(yīng)頻率段地址到bx中 push si 。si入棧 mov si,keynum 。取按鍵編號緩存值,存入si mov di,[bx+si] 。取對應(yīng)編號的音符頻率值,存入di call play_hand 。調(diào)用手動發(fā)聲程序 pop si 。出棧。顯示彈起 push bx mov bx,keynum 。在屏幕上顯示彈起狀態(tài) call key_up。按下時琴身點陣顏色恢復(fù)灰色draw_point 40,52,44,92,07h 。調(diào)用矩形點陣宏,繪制音響孔左draw_point 288,52,292,92,07h 。調(diào)用矩形點陣宏,繪制音響孔右draw_point 150,34,282,38,07h 。調(diào)用矩形點陣宏,繪制正面音孔 pop bx mov key_tune,0 ?;謴?fù)按鍵狀態(tài)緩存。 retdo_key endp。******************************手動演奏發(fā)聲程序**************************。功能:當(dāng)手動按鍵時,播放相應(yīng)鍵的聲音,只要不放開,就會一直播放。在di中存放發(fā)聲頻率。play_hand proc near。 push ax push bx push cx push dx push di。 mov al,0b6h 。在8253的43端送出一個控制字0b6h(10110110b) out 43h,al 。從而對定時器2初始化,準(zhǔn)備接收計數(shù)初值 mov dx,12h 。 mov ax,348ch 。12348h存入DX:AX中,作32位運算,商存入AX,余數(shù)存入DX div di 。di中存放給定頻率 out 42h,al in al,61h 。開揚聲器 mov al,ah 。給定時器2寫入AX中存放的計數(shù)初值 out 42h,al in al,61h mov ah,al 。把8255輸出端的61h的0、1兩位置1,并把端口狀態(tài)存入ah or al,3 。打開揚聲器
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1