組合語言實習報告

2021-09-28 16:30:18 字數 2365 閱讀 9339

計算機強化實訓

班級:姓名:

學號:一, 分析問題

已知條件:y=a*b+c/d-e,其中a、b、

c、d、e均為位元組數,從數

據區讀入。

目的要求:按式計算yi,並判斷其正、負

性,正負數分別存於buf1和

buf2中貯。

二, 確定演算法

輸入方式:從資料區讀入。在資料段中定義資料變數。

處理方式:算術運算、分支、迴圈等。

輸出方式:存貯於資料區

三,儲存空間分配

定義堆疊段

定義資料段,其中:

string:放置顯示資訊

buffer:放置輸入字串

data1: 存放正結果

data2: 存放負結果

四,繪製流程圖

五,編寫程式

stack segment stack 'stack定義堆疊段

dw 256 dup給堆疊段分配256個字長的空單元

stack ends

datas segment定義資料段

output1 db 'the five calculate result is:',0dh,0ah,'$'

output2 db 'please press any to quite',0dh,0ah,'$'

flag db 0

dataa db 1,3,5,1,2將五組資料分別依次儲存於資料段

datab db 2,4,6,2,3

datac db 20,40,60,20,10

datad db 4,5,6,4,5

datae db 5,20,20,20,15

buf1 dw 5 dup定義buf1並分配5個字長的空單元

buf2 dw 5 dup定義buf2並分配5個字長的空單元

tmp dw

result dw ?

factor dw 10

datas ends資料段結束

codes segment定義**段

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

start程式開始

mov ax,datas將datas的段位址放入ax

mov ds,ax將ax的資料放入ds,因為datas的資料不能直接放入ds,所以必須經過ax

mov dx,offset output1將offset output1存入dx

mov ah,9

int 21h輸出字串

mov di ,0將di清零

mov bx,0

mov si,0si清零

mov cx,5設定迴圈的次數

next1此處為迴圈起始點

mov al,dataa[si將資料a組的乙個資料移入al

cbwal擴充套件到ax

mov dl,datab[si將b組第乙個資料移入dl

mov dh,0dh清零

mul dlal與bl相乘

mov tmp,ax將結果存入臨時變數tmp中,保護起來

mov al,datac[si將c組第乙個資料存入al

cbwal擴充套件為ax

mov dl,datad[si將資料d存入dl

mov dh,dl

div dl資料c/d,此時al為c/d

cbwal擴充套件位16位的ax

add ax,tmpal=a*b+c/d

mov dl,datae[si將資料e放入dl

mov dh,0

sub ax,dxal=a*b+c/d-e

js buf跳轉到buf

mov bx,si

add bx,si

mov buf1[bx],ax將ax值存入buf1中

mov result,ax

call trans_to_int呼叫子程式trans_to_int

mov dl,0ah將0ah放入dl

mov ah,2輸出數字

int 21h呼叫21中斷

mov dl,0dh

mov ah,2

int 21h

jmp skip1無條件跳到skip1

buf:

mov di,si

add di,si

mov buf2[di],ax

neg ax對ax裡的值求補

mov result,ax將ax的值存入result

mov dl將「-」的ascii碼值送至dl

mov ah,2輸出「-」

int 21h

mov flag,0

call trans_to_int呼叫子程式trans_to_int

mov dl,0ah

組合語言實驗報告組合語言實驗指導書

實驗報告 實驗課程組合語言程式 學生代號信念 學號5215201314 專業班級網路間諜088班 2009年 12月 25日 實驗1 利用debug除錯組合語言程式段54 實驗3 初級程式的編寫與除錯實驗 二59 實驗5 分支程式實驗65 實驗6 迴圈程式實驗68 實驗7 子程式實驗69 實驗8 字...

組合語言實驗報告

電子科技大學 實驗報告 實驗一1 實驗名稱 彙編源程式的上機除錯操作基礎訓練 2 實驗學時 4 3 實驗內容和目的 實驗內容 1.debug命令的使用 2.程式的除錯與執行 3.編寫程式計算以下表示式 z 5x 2y 7 2 設x y的值放在位元組變數varx vary中,結果存放在位元組單元var...

組合語言實驗報告

組合語言課程設計 學院 專業 姓名 學號 組合語言是計算機專業的一門重要的專業基礎課,主要介紹組合語言程式設計的基本原理和方法。組合語言是一門理論性和實踐性較強的課程,輔助課堂教學的實驗有助於幫助學生理解組合語言的基本原理,鍛鍊學生的動手能力,提高學生的綜合應用知識的能力。1 利用debug除錯組合...