汇编语言及应用——程序设计
1、 建立匯編語(yǔ)言源程序.ASM
建立好的源文件以 EX_1.ASM 為文件名存盤
運(yùn)行程序,顯示如下:
調(diào)試程序,用e命令更改第二個(gè)字符串內(nèi)容,再用G命令運(yùn)行程序,結(jié)果輸出:MATCH!
如下圖所示:
2、完成課堂例題,并用 DEBUG 運(yùn)行,觀察結(jié)果。
提示:運(yùn)行以上程序,進(jìn)入調(diào)試窗口, 用 U 命令顯示程序,找到程序結(jié)束處的地址,用 G
命令執(zhí)行程序,用 D 命令檢查數(shù)據(jù)段中的運(yùn)行結(jié)果。
X db 6 //X初始值為6
Y db ? //Y初始值為?
mov al,x //將X的值,即6傳遞給AL
mov y,5 //將5傳遞給y
add y,al //將y與al的值兩者相加后,即B傳給y
mov ah,4ch //將4C傳給AX的高八位,所以最后AX的值由4C和06組成,即4C06
2、學(xué)習(xí)數(shù)據(jù)傳送指令和算術(shù)運(yùn)算指令的用法;掌握數(shù)據(jù)定義偽指令的格式,會(huì)用DEBUG中的D命令觀察DB、DW、DD存儲(chǔ)數(shù)據(jù)的格式;熟悉匯編語(yǔ)言的基本框架,掌握編寫匯編語(yǔ)言程序的基本方法。
示 例
源程序如下:
閱讀程序,試問(wèn)程序執(zhí)行到exit時(shí),字單元A、B、C、C+1、C+2中的內(nèi)容各是什么?
字節(jié)單元:46 5A 28 3C 50
字單元:5A46 285A 3C28 503C 0050
1、 通過(guò)debug命令將上面的程序?qū)懭雰?nèi)存,追條執(zhí)行,根據(jù)指令執(zhí)行后的實(shí)際運(yùn)行情況填空。
MOV AX,0FFFFHMOV DS,AXMOV AX,2200MOV SS,AXMOV SP,0100MOV AX,[0] ; AX=C0EAADD AX,[2] ;AX=C0FCMOV BX,[4] ;BX=30F0ADD BX,[6] ;BX=6021PUSH AX ;SP=00FE ; 修改的內(nèi)存單元的地址是2200:00FE,內(nèi)容為C0FCPUSH BX ;SP=00FC ; 修改的內(nèi)存單元的地址是2200:00FC,內(nèi)容為6021POP AX ;SP=00FE ; AX=6021POP BX ;SP=0100 ; BX=C0FCPUSH [4] ;SP=00FE ; 修改的內(nèi)存單元的地址是2200:00FE,內(nèi)容為30F0PUSH [6] ;SP=00FC ; 修改的內(nèi)存單元的地址是2200:00FC,內(nèi)容為2F312、 x、y、z 均為雙精度數(shù),分別存放在地址為X, X+2; Y, Y+2;Z, Z+2的存儲(chǔ)單元中,編程實(shí)現(xiàn) x + y + 24 - z → w ,并用W, W+2單元存放w.
假設(shè)x,y,z為0101,0202,0303
程序如下:
調(diào)試截圖:
所以W=ax=4C18,W+2=dx=0000
3、 將下面程序補(bǔ)充完整,保存成.asm文件,將其生產(chǎn)可執(zhí)行文件,運(yùn)行后觀測(cè)AX寄存器種的內(nèi)容是什么。
data segmentTABLE dw 10,20,30,40,50ENTRY dw 3 data ends code segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov BX,OFFSET TABLEadd BX,ENTRY exit: mov ah,4chint 21h code endsend start
運(yùn)行后觀測(cè)AX寄存器中的內(nèi)容是:4C70
總結(jié)
以上是生活随笔為你收集整理的汇编语言及应用——程序设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 开封机器人餐厅_百合汇主题酒店——开封首
- 下一篇: 树莓派使用STEP2:设置网络