組合語言實驗二

2021-10-22 04:03:32 字數 2275 閱讀 8637

datas segment

;此處輸入資料段**

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

;實驗二(一):順序輸入四個數,比較大小,輸出max

mov ah,1

int 21h;呼叫一號功能單字元輸入

mov bh,al;輸入的第乙個數放到bh裡

mov ah,1

int 21h;再輸入乙個數放到al裡

cmp bh,al

ja a ;如果bh大於al,則跳轉執行下乙個數的輸入

mov bh,al;第一次比較(如果bh小於al,則把大數放於bh)

a: mov ah,1

int 21h

cmp bh,al

ja b

mov bh,al;第二次比較

b: mov ah,1

int 21h

cmp bh,al

ja d

mov bh,al;第三次比較

;輸出d: mov ah,2

mov dl,10

int 21h;回車

mov ah,2

mov dl,13

int 21h;換行

mov dl,bh

int 21h;輸出

mov ah,4ch

int 21h

codes ends

end start

datas segment

;此處輸入資料段**

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

;實驗二(二):利用迴圈實現數字輸入和比較

mov cx,4;cx為計數器

mov bh,0;初始化

;迴圈體

f: mov ah,1

int 21h;輸入乙個數

cmp bh,al;比較

ja a

mov bh,al;交換

a: sub cx,1;減1/加1

cmp cx,0;for(i=0;i<4;i++)

je d;迴圈體

jmp f

;輸出d: mov ah,2

mov dl,10

int 21h;回車

mov ah,2

mov dl,13

int 21h;換行

mov dl,bh

int 21h;輸出

mov ah,4ch

int 21h

codes ends

end start

datas segment

;此處輸入資料段**

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

;實驗二(三):利用loop迴圈語句實現數字的輸入和比較

mov cx,4;cx為計數器

mov bh,0;初始化

;迴圈體

f: mov ah,1

int 21h;輸入乙個數

cmp bh,al;比較

ja a

mov bh,al;交換

a: loop f;loop迴圈語句

;輸出d: mov ah,2

mov dl,10

int 21h;回車

mov ah,2

mov dl,13

int 21h;換行

mov dl,bh

int 21h;輸出

mov ah,4ch

int 21h

codes ends

end start

組合語言實驗二

預備知識 debug的使用 前面實驗中講了debug一些命令的用法,這裡再補充一些關於debug的知識。1 關於d命令 現在我們知道段位址是存放在暫存器中的,在d命令後面直接給出段位址,是debug提供的一種直觀的操作方式。d命令是由debug執行的,debug在執行d 1000 0這樣的命令時會先...

組合語言實驗二

用機器指令和彙編指令程式設計 實驗任務 一 使用 debug,將下面的程式段寫入記憶體,逐條執行,根據指令執行後實際運 況填空。在中途輸入指令的時候,錯把 add 指令輸成了 mov 指令。並且有乙個有趣的地方是,我這段指令中是有 mov sp,0100 這個指令的,但是在執行的時候這條指令並沒有顯...

組合語言 實驗二

在進行實驗之前,有個小知識點 中斷機制 debug的t命令在執行修改暫存器ss的指令時,下一條指令也緊接著被執行。實驗任務 1 敲下如下 填空與實驗結果一致。實驗任務 2 1.我們發現 2000 0 2000 f 的單元值是有變化的 那麼是什麼原因呢?2.前3行的功能是 將段暫存器ss的值設定為段位...