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

正文內(nèi)容

匯編語言程序設(shè)計(jì)報(bào)告-資料下載頁

2025-02-04 06:22本頁面

【導(dǎo)讀】的順序及ASCⅡ碼遞增的次序依次顯示對(duì)應(yīng)的字符。每16個(gè)字符為一行,每行。中的相鄰兩個(gè)字符之間用空白符隔開。符加1,判斷是否輸完一行,未輸出完繼續(xù)輸出字符。顯示空白符是,用其ASCⅡ碼置0入dl寄存器。而顯示空白、回車、換行也需要使用dl寄存器,為此可使用堆棧保存dx。熟悉了用堆棧保存信息,并簡(jiǎn)單了解了循環(huán)程序設(shè)計(jì)。;如果句子中包含關(guān)鍵字則顯示“match!”,且把該字在句子。中的位置用十六進(jìn)制數(shù)顯示出來。要求程序的執(zhí)行過程如下:。構(gòu)來完成,循環(huán)次數(shù)為:+1;在計(jì)算循環(huán)次數(shù)時(shí),需要用到BX寄存器,它用來保存句子中當(dāng)前正在比較字段的首地址。兩種區(qū)別就是cx是否為零,為零則match。最后再用二進(jìn)制轉(zhuǎn)換十六進(jìn)制將。輸入關(guān)鍵字和一個(gè)句子,分別存入相應(yīng)的緩沖區(qū)中。為此必須定義附加。輸出信息:用功能調(diào)用09h分“找到”或“找不到”兩種情況分別顯示不同。在“找到”時(shí),還要求顯示出匹配字符串在句子中的位置,在“找到”

  

【正文】 。左上角行號(hào) mov cl,b 。左上角列號(hào) mov dh,c 。右下角行號(hào) mov dl,d 。右下角列號(hào) mov bh,7 。卷入行屬性 int 10h 。BIOS 調(diào)用,屏幕初始化 endm scroll macro cont,ulrow,ulcol,lrrow,lrcol。宏指令 scroll向上卷動(dòng)一行 mov ah,6 mov al,cont 。上卷行數(shù) mov ch,ulrow 。左上角行號(hào) mov cl,ulcol 。左上角列號(hào) mov dh,lrrow 。右下角行號(hào) mov dl,lrcol 。右下角列號(hào) mov bh,70h 。卷入行屬性 int 10h 。BIOS 調(diào)用,上卷 endm postc macro y,x 。宏指令 postc 光標(biāo)定位 mov ah,2 mov dh,x 。行 mov dl,y 。列 mov bh,0 。頁號(hào) int 10h 。BIOS 調(diào)用,置光標(biāo)位置 endm codes segment assume cs:codes,ds:datas start: push ds sub ax,ax push ax mov ax,datas mov ds,ax clear 0,0,24,79 scroll 10,5,10,15,30 scroll 10,5,50,15,70 scroll 4,18,15,22,65 postc 50,15 input: 。輸入鍵盤上的字符 mov ah,0 int 16h 。BIOS 調(diào)用,從鍵盤讀字符 ,ah=掃描碼 cmp ah,4bh 。判斷輸入字符是否為左向鍵 jnz no_left postc ly,lx mov windownum,2 jmp input no_left: cmp ah,4dh jnz no_right 。判斷輸入字符是否為右向鍵 postc ry,rx mov windownum,1 jmp input no_right: cmp ah,01 。判斷輸入字符是否為 ESC jz exit 。在正確的窗口打印字符 mov ah,0ah mov bh,0 mov cx,1 int 10h postc dwy,dwx mov ah,0ah mov bh,0 。在下窗口輸出 mov cx,1 int 10h inc dwy 。判斷下窗口是否上卷 cmp dwy,65 jle isright scroll 1,19,15,22,65 mov dwy,15 isright: 。判斷是否在右窗口 cmp windownum,1 jnz displeft dispright: 。判斷右窗口是否上卷 inc ry cmp ry,70 jle rightexit scroll 1,6,50,15,70 mov ry,50 rightexit: 。光標(biāo)右移一位 postc ry,rx jmp input displeft: 。判斷左窗口是否上卷 inc ly cmp ly,30 jle leftexit scroll 1,6,10,15,30 mov ly,10 leftexit: 。光標(biāo)右移一位 postc ly,lx jmp input exit: mov ah,4ch int 21h codes ends 四、 實(shí)驗(yàn)心得 本次實(shí)驗(yàn)開始對(duì)屏幕窗口進(jìn)行簡(jiǎn)單編程,很有實(shí)用價(jià)值。開始時(shí)完全沒接觸這方面的編程,經(jīng)過這次設(shè)計(jì),對(duì)窗口編程有了初步認(rèn)識(shí),并且也使用一些 BIOS調(diào)用,與宏定義。 具體試驗(yàn)中,上卷、清屏、光標(biāo)定位都是很陌生的,但是經(jīng)過簡(jiǎn)單了解發(fā)現(xiàn)也并不難,經(jīng) 過不斷調(diào)試,終于對(duì)窗口顯示有了一定認(rèn)識(shí)。最后驗(yàn)收老師讓改變輸入窗口以及改成下卷,我也都順利實(shí)現(xiàn),學(xué)到了不少東西。 實(shí)驗(yàn)六 擴(kuò)充鍵盤處理功能的程序 一. 設(shè)計(jì)要求 掌握中斷的概念以及中斷服務(wù)程序的編寫,通過一個(gè)鍵盤處理程序,了解系統(tǒng)中鍵盤的處理過程,理解鍵盤的工作原理。 完成鍵盤處理基本功能的基礎(chǔ)上,增加 left_shift 和 right_shift 鍵的功能。要求實(shí)現(xiàn)左右 SHIFT 任何一個(gè)鍵處于按下狀態(tài)時(shí)輸入字符為鍵盤的上檔字符或大寫字母,否則輸出數(shù)字或小寫字母。 二 .設(shè)計(jì)思路 原理:( 1) 在鍵盤內(nèi)部,有一個(gè) 微處理機(jī) INTEL 8048,從系統(tǒng)板接收到時(shí)鐘信號(hào),讀取每個(gè)鍵的字符,將其掃描碼放在 8255外圍接口,芯片的 PA端口( 60h)內(nèi),鍵盤正常工作時(shí),第 6 位總是 1,否則,關(guān)閉鍵盤。 PB 端口的第 7位置 1時(shí),發(fā)送應(yīng)答信號(hào)給鍵盤微處理機(jī)。每當(dāng)按下鍵或放開鍵,在 8048 將其掃描碼送入 PA 端口的同時(shí),還產(chǎn)生一個(gè)類型為 09h的中斷,任務(wù)是:讀掃描碼并把應(yīng)答信號(hào)送到鍵盤,把掃描碼轉(zhuǎn)換成 ASCII 碼或轉(zhuǎn)換鍵狀態(tài)。 將鍵入的字符輸入到緩沖隊(duì)列,循環(huán)狀態(tài)為空( bufpt1=bufpt2) 。 鍵盤輸入的字符存入緩沖隊(duì)列,如果 bufpt1=bufpt2,從隊(duì)列中取出一個(gè)字符,數(shù)據(jù)段定義了轉(zhuǎn)換表 scantab,可以顯示字符或者其他控制鍵。 步驟:本次實(shí)驗(yàn)要求在示例 的基礎(chǔ)上,添加功能,關(guān)于 left_shift 和right_shift 可以通過它們各自的掃描碼進(jìn)行判斷,此外還應(yīng)該設(shè)置標(biāo)志變量便于程序的判斷,較示例的程序除了要添加判斷是否為 shift 鍵外,還應(yīng)該再設(shè)置一張 shifttab 轉(zhuǎn)換表,這樣當(dāng) shift 被按下時(shí),應(yīng)由這樣轉(zhuǎn)換表進(jìn)行轉(zhuǎn)換,而其他情況下由, scantab 轉(zhuǎn)換表轉(zhuǎn)換。在讀入信息時(shí)候需要在不同的端口讀入信息并判斷,通過檢測(cè) 狀態(tài)和數(shù)據(jù)作出正確的操作。 三、程序主要部分流程圖 四.實(shí)驗(yàn)關(guān)鍵代碼 kbint proc far push bx push ax in al,60h push ax in al,61h or al,80h out 61h,al and al,7fh out 61h,al pop ax test al,80h jnz kbint5 cmp al,42 jz left_shif cmp al,54 jz right_shif test kbflag,03h 。判斷 shift鍵是否按住 jnz press_shif mov bx,offset scantab xlat scantab cmp al,0 jnz kbint4 mov kbflag,80h jmp kbint2 left_shif: or kbflag,01h jmp kbint2 right_shif: or kbflag,02h jmp kbint2 press_shif: mov bx,offset shiftab xlat shiftab cmp al,0 jnz kbint4 mov kbflag,80h jmp kbint2 kbint4: mov bx,bufpt2 mov [buffer+bx],al inc bx cmp bx,16 jc kbint3 mov bx,0 kbint3: cmp bx,bufpt1 jz kbint2 mov bufpt2,bx kbint5: cmp al,0aah jz kbint1 cmp al,0b6h jz kbint1 jmp kbint2 kbint1: mov kbflag,0 kbint2: cli mov al,20h out 20h,al pop ax pop bx sti iret kbint endp 運(yùn)行結(jié)果: 五. 實(shí)驗(yàn)總結(jié) 這次實(shí)驗(yàn)實(shí)在書上例 的基礎(chǔ)上修改程序。原程序 start,保存,設(shè)置,回復(fù)鍵盤中斷向量,設(shè)置中斷向量屏蔽為并開中斷。從鍵盤鍵入字符并顯示。子程序 kbget 檢測(cè)并等待鍵盤中斷,如果有輸入,就從緩沖隊(duì)列中取出字符進(jìn)行隊(duì)列管理。鍵盤中斷處理程序 kbint 從輸入端口 PA讀入按鍵的掃描碼并返回應(yīng)答信號(hào),對(duì)通碼進(jìn)行轉(zhuǎn)換,放在隊(duì)尾。子程序 dispchar 是顯示功能。為了把接收碼轉(zhuǎn)換為 ASCII 碼,數(shù)據(jù)段中還定義了一個(gè)轉(zhuǎn)換表 scantab,功能鍵都做無效 處理,鍵盤上按下任意一個(gè)控制鍵或功能鍵時(shí),程序?qū)⒐鈽?biāo) kbflag 設(shè)置為 80h,控制結(jié)束,返回 DOS。 我這次的實(shí)驗(yàn)工作主要在 kbint 中實(shí)現(xiàn),設(shè)置標(biāo)志判斷是否按下 shift 鍵,以及按下松開 shift 鍵可對(duì)標(biāo)志進(jìn)行修改,接著類似原程序顯示小寫字母,改為按下 shift 鍵,顯示大寫字母,實(shí)現(xiàn)并不困難。 但我感覺對(duì)原程序理解并不透徹,這次實(shí)驗(yàn)成功,是由于書上提示以及同學(xué)幫助,以后還要花一些功夫研究原程序。
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1