汇编语言——第2次上机实验
生活随笔
收集整理的這篇文章主要介紹了
汇编语言——第2次上机实验
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
實驗要求:
求表達式x*y+z-200的值
實驗步驟:
1.按照實驗要求,畫出相應(yīng)的計算流程圖
可以看到,先算x*y(保存在dx:cx),然后擴展z為雙字節(jié)(dx:ax),計算x*y+z-200(保存在bx:cx),然后把結(jié)果移到w中。
2.按照基本的編輯步驟,編輯代碼,并編譯。
code:
DATA SEGMENT X DW 1000 Y DW 2000 Z DW 3000 W DW 2 DUP(?) ;定義段結(jié)束 DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,X IMUL YMOV CX,AX ;把乘積結(jié)果保存起來(低8位)MOV BX,DX ;高8位MOV AX,ZCWD ;位擴展,防止運算不匹配ADD CX,AXADC BX,DXSUB CX,200SUB BX,0MOV W,CX ;把結(jié)果保存到w(低16位)MOV W+2,BX ;高16位MOV AH,4CHINT 21HCODE ENDSEND START每一步都有相應(yīng)的注釋。其中IMUL為有符號乘法,了解更多請 點擊
編譯并連接
3.單步調(diào)試查看結(jié)果
不停t命令,直到程序返回dos
然后查看內(nèi)存,可以看到:
x:03E8,? y:07D0 ,?? z:0BD8??
結(jié)果w :1E8F70
4.驗證結(jié)果
打開系統(tǒng)自帶的計算機并ALT+3調(diào)到程序員專用型。
輸入表達式計算結(jié)果得到2002800
轉(zhuǎn)化為16進制:
ok,到此結(jié)束,運行結(jié)果正確。
知識點:
掌握cwd擴展,明白為什么要進行擴展。
掌握IMUL的用法,熟悉高位計算。
練習(xí)結(jié)構(gòu)化編程。
總結(jié)
以上是生活随笔為你收集整理的汇编语言——第2次上机实验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uva 10254——The Prie
- 下一篇: Codeforce 189B——Coun