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

2021-06-27 04:17:43 字數 3058 閱讀 9047

掌握接收鍵盤資料的方法並了解將鍵盤資料顯示時須轉換為

ascⅱ

碼的原理。

編寫程式將鍵盤接收到的四位十六進製制資料轉換為等值的二進位制數,再顯示在終端上。

三、**

data segment

numstr db 4 dup(?),0ah,0dh,'$'

msgone db 'please input four hexadecima:','$'

msgtwo db 'the corresponding binary is :','$'

msgthree db 0ah,0dh,'input error,please this number again:','$'

msgfour db 0ah,0dh,'the four hexadecima is:','$'

c16 dw 16;

result dw 0;

data ends

mystack segment stack

db 100 dup(?)

mystack ends

code segment

assume ds:data,cs:code

start:

mov ax,data;

mov ds,ax;

lea dx,msgone; 輸出msgone

mov ah,09h;

int 21h;

mov cx,4;

mov bx,0;

inputnum:

mov ah,01h; 從鍵盤輸入乙個字元,其ascii存放在al中

int 21h;

call change; 若字元al為小寫字母,則轉換為相應的大寫字母

cmp al,'0'; 若al < '0'

jb inputerror;

cmp al,'f'; 若al > 'f'

ja inputerror;

cmp al,'9'

jbe inputright

furtherjudge:

cmp al,'a'

jae inputright;

jmp inputerror;

inputright:; 輸入正確是的處理

mov numstr[bx],al;

inc bx;

jmp continue;

inputerror:; 輸入錯誤時的處理

lea dx,msgthree;

mov ah,09h;

int 21h;

inc cx;

continue:

loop inputnum

lea dx,msgfour; 輸出msgfour

mov ah,09h;

int 21h;

lea dx,numstr; 輸出numstr

mov ah,09h;

int 21h;

mov cx,4;

mov bx,0;

mov ax,0;

mov result,0;

trantobinary:

call changetwo;

shl result,1;

shl result,1;

shl result,1;

shl result,1;

mov al,numstr[bx];

add result,ax;

inc bx;

loop trantobinary

outtrantobinary:

lea dx,msgtwo;

mov ah,09h;

int 21h;

mov cx,16;

printresult:

shl result,1;

jae printzero;

mov dl,'1'

jmp nextprint;

printzero:

mov dl,'0'

nextprint:

mov ah,02h;

int 21h;

loop printresult

mov ah,4ch; 程式結束

int 21h;

change proc; 將小寫字元轉換為大寫字元,若不是小寫字母,則不做處理

;al中為要轉換的小寫字母,al返回相應的大寫字母

cmp al,'a';

jb then;

cmp al,'z';

ja then;

add al,20h;

then:

ret;

changetwo proc; 將十六進製制字元轉換為十六進製制

;numstr[bx]中儲存要轉換的十六進製制字元

cmp numstr[bx],'0';

jb next

cmp numstr[bx],'9'

ja further

and numstr[bx],0fh;

jmp next;

further:

cmp numstr[bx],'a'

jb next;

cmp numstr[bx],'f'

ja next;

sub numstr[bx],87;

next:

retcode ends

end start

四、執行結果



rust 從鍵盤輸入資料

直接上 吧!use std io fn main guess 很有意思,rust借鑑了很多函式式程式設計的思想,前幾年學過haskell,現在感到有些面熟。下面這個命令,沒有用c 慣用的建構函式,而是使用了乙個函式,返回乙個類的例項。let mut guess string new rust的編譯機...

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

在組合語言中,凡是涉及到鍵盤輸入 螢幕顯示等輸入輸出操作,都可以用軟體中斷指令int n的功能呼叫來實現。所謂功能呼叫是計算機系統設計的簡單 i o 子程式,能方便地訪問系統的硬體資源。在微機系統中,功能呼叫分兩個層次,最底層的是 bios 功能呼叫,其次是 dos 功能呼叫,它們都是通過軟體中斷指...

C 從鍵盤輸入的方法

c 最基本的常用的輸入方式 包含標頭檔案 include 注意 不能接受空格和回車 int main 1 scanf 函式 包含標頭檔案 include scanf函式一般格式為scanf s st 但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串都是...