彙編實驗 分支迴圈結構程式練習

2021-10-10 19:03:36 字數 1970 閱讀 6855

一、 實驗內容

試編寫程式,完成下面功能

(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...