組合語言程式設計 螢幕顯示和鍵盤輸入

2021-09-25 17:46:46 字數 1489 閱讀 7783

在組合語言中,凡是涉及到鍵盤輸入、螢幕顯示等輸入輸出操作,都可以用軟體中斷指令int n的功能呼叫來實現。所謂功能呼叫是計算機系統設計的簡單 i / o 子程式,能方便地訪問系統的硬體資源。

在微機系統中,功能呼叫分兩個層次,最底層的是 bios 功能呼叫,其次是 dos 功能呼叫,它們都是通過軟體中斷指令int n來進行呼叫的。除了用 int 指令實現輸入和顯示之外,還可以通過直接寫顯示緩衝區的方式顯示字元。

(1)dos 功能呼叫

dos 的功能呼叫採用int 21h指令,呼叫時要求在 ah 中提供功能號,在指定的暫存器和儲存單元中提供呼叫必需的引數和緩衝區位址,執行後系統在 al 中放入返回引數。

常用的 dos 功能呼叫有 5 個:

注意:i/o 處理操作的都是 ascⅱ 碼,對於鍵盤輸入的數字,做計算時需將 ascⅱ 碼轉變為二進位制數,輸出顯示資料時需將二進位制數轉為 ascⅱ 碼。數字 0~9 的 ascii 碼為 30h~39h,可以看出兩者之間相差 30h。

(2)dos 功能呼叫例子

例子:顯示兩行字串(回車換行功能)。第 1 行為「input x:」,第 2 行為「output y=x+1:」。從鍵盤輸入 x,輸出 y = x + 1 的值。

彙編**如下:test3-2.asm

data segment

mess1 db 'input x:','$'

mess2 db 0ah,0dh,'output y:$' ;0ah和0dh是換行和回車

y db ?

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

mov dx,offset mess1

mov ah,9 ;顯示提示資訊"input x:"

int 21h

mov ah,1 ;1號功能,鍵盤輸入,鍵入的值在al

int 21h

add al,1 ;al+1->al

mov y,al ;儲存到y單元

mov dx,offset mess2

mov ah,9 ;在下一行顯示提示資訊"output y:"

int 21h

mov ah,2 ;2號功能,顯示乙個字元

mov dl,y ;顯示的字元要放入dl,顯示x+1的值

用80x86組合語言程式設計 鍵盤輸入與顯示輸出

要求 從鍵盤輸入一行字元,要求第乙個鍵入的字元必須是空格,不是,就退出。如果是的話,開始接收字元並存放在首位址buffer的緩衝區內,直到接收到第二個空格時結束。然後輸出這個字串。懸賞分 15 下列程式,經過檢驗,符合條件要求。data segment buffer db 80 dup data e...

組合語言實現顯示鍵盤輸入十進位制數字

一 實現 如下 data segment 資料段 org 2000h res db 5 dup 定義res變數 db data ends code segment 段 assume cs code,ds data start mov ax,data 設定資料段 mov ds,ax mov di,20...

彙編 從鍵盤輸入資料並顯示的程式

掌握接收鍵盤資料的方法並了解將鍵盤資料顯示時須轉換為 asc 碼的原理。編寫程式將鍵盤接收到的四位十六進製制資料轉換為等值的二進位制數,再顯示在終端上。三 data segment numstr db 4 dup 0ah,0dh,msgone db please input four hexadec...