一、 實驗內容
試編寫程式,完成下面功能
(1) 程式執行時,顯示提示資訊「please input a string(length<9):」,由使用者輸入乙個長度小於9的字串;
(2) 然後顯示提示資訊「please input the index of the char to display:」,請使用者指定該串中的某個字元的位置號,程式控制使用者輸入的位置號必須是合法的,例如實際輸入的字串長度為5個字元,位置號只能是0-4之間的數值,若位置號不合法,則程式退出。
(3) 程式將使用者指定位置的字元顯示出來。
eg:合法情況:
非法情況:
彙編**如下:
datas segment
buf db 10,?,10 dup(
'$')
str1 db "please enter a string(length<9):$"
str2 db 0ah,0dh,"please input the index of the char to display:$"
str3 db 0ah,0dh,"the char is:$"
str4 db 0ah,0dh,"the index is invalid!$"
datas ends
stacks segment
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
start:
mov ax,datas
mov ds,ax
mov ah,09h
lea dx,str1
int 21h ;輸出提示語
lea dx,buf
mov ah,10 ;輸入
int 21h
mov bx,offset buf[2]
mov al,0
mov cl,0
l: mov al,buf[bx]
cmp al,'$'
je over ; 如果相等就跳轉
inc bx
inc cl
jmp l
over:
sub cl,1 ; cl的值為字串長度,這裡減1是減去換行字元
mov ah,09h
lea dx,str2
int 21h ;輸出提示語
mov ah,01h
int 21h
sub al,30h; 輸入
cmp cl,al
jng err ; 如果不大於就跳轉到非法情況處理
mov ah,09h ;若輸入符合規範
lea dx,str3
int 21h ;輸出提示語
mov bl,al
mov bh,0
mov dl,buf[bx+2]
mov ah,02h
int 21h ;輸出結果
mov ax,4c00h; 程式結束
int 21h
err:
mov ah,09h ;若輸入不符合規範
lea dx,str4
int 21h ;輸出提示語
mov ah,4ch; 程式結束
int 21h
codes ends
end start
彙編實驗 實驗二 分支迴圈結構迴圈練習
上 注釋在 中有 輸入位置號事件 do while index lth 得到相應位置上的字元 asm printf the char is c n a 特定字元數目 printf please input a char fflush stdin 重新整理標準輸入緩衝區 c getchar asm p...
實驗六 迴圈結構程式練習總結
1 本次課學習到的知識點 1 迴圈結構程式設計 歸納出哪些操作需要反覆執行 迴圈體 這些操作在什麼情況下重複執行 迴圈控制條件 一旦確定迴圈體和迴圈條件,迴圈結構也就基本確定了。再選用三種迴圈語句實現迴圈。2 如果實現給定了迴圈次數 首選for語句,因為它看起來最清晰。如果迴圈次數不明確,需要通過其...
實驗二 分支程式實驗和迴圈程式實驗
流程圖 code segment 定義 段 assume cs code 偽指令assume將段code與段暫存器cs聯絡起來 start mov al,3eh 定義程式的入口,把想要顯示的數字移入al暫存器 mov bl,al 將al暫存在bl中,因為之後要改變ah中的內容 mov dl,al d...