一 **實現
**如下:
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,
2000h ;儲存結果的指標
dec di
get_char:mov ah,
1;dos 1號功能呼叫
int 21h ;al=鍵入數字ascii碼
cmp al,
0dh ;與回車符的ascii碼比較
je exit ;是回車符,轉exit
sub al,
30h ;ascii碼轉換成bcd碼
jl exit ;
<
0(非數字),則退出
cmp al,9;
>
0,則與9比較
jg exit ;
>
9,退出
add al,
30h ;把鍵入的數轉換為對應數字字元的ascii碼值
mov [di]
,al ;把鍵入的結果傳給res中儲存
sub al,
30h ;ascii碼轉換成bcd碼
cbw ;把al中位元組的符號位擴充到ah中的所有位
xchg ax,bx ;將先鍵入的數->ax
mov cx,
10;將10賦值給cx
mul cx ;將先鍵入的數×10
->ax
xchg ax, bx ;再次將ax和bx中的值交換,新鍵入數->ax
add bx,ax ;累加,結果存入bx
jmp get_char ;無條件轉移到get_char處執行
exit:
lea dx,res ;將res的偏移位址賦給dx,用於顯示
mov ah,
9;dos9號功能呼叫
int 21h
mov ax,
4c00h ;返回dos系統
int 21h
code ends ;**段結束
end start
二 執行結果圖
組合語言程式設計 螢幕顯示和鍵盤輸入
在組合語言中,凡是涉及到鍵盤輸入 螢幕顯示等輸入輸出操作,都可以用軟體中斷指令int n的功能呼叫來實現。所謂功能呼叫是計算機系統設計的簡單 i o 子程式,能方便地訪問系統的硬體資源。在微機系統中,功能呼叫分兩個層次,最底層的是 bios 功能呼叫,其次是 dos 功能呼叫,它們都是通過軟體中斷指...
組合語言 從鍵盤輸入有符號十進位制數的子程式
data segment count 0ah array dw count dup 0 over db read over data ends code segment assume cs code,ds data start mov ax,data mov ds,ax xor ax,ax mov ...
組合語言 十進位制輸入輸出
model small stack 100h data string db please input a munber s dw 0 sur dw 0 code start mov ax,data mov ds,ax mov dx,offset string 輸出字串string mov ah,09...