资源描述:
《实验6汇编程序语法和数据定义伪指令.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验六汇编程序语法和数据定义伪指令姓名:付玉伟学号:10538057日期:10.31成绩:实验目标:1.定义一数据段,依次定义以下数据:(1)STR为字符串INTERNET(2)A为十六进制字节数据30H(3)B为十进制字节数据10(4)C为二进制字节数01010101B(5)D为包含10个字的数据,初值为2009(要求使用DUP重复因子)要求:编程实现该题目。在所建文件中,包含一个数据段和一个代码段,代码段中可填入最基本的对数据段的初始化设置及退出系统的指令即可,数据段中将题目要求变量进行定义。并在汇编完成后,通过【查看】/【变量】命令,查看相应变量的初值情况。2.
2、(参考P140)对下面数据定义,指令“MOVAX,COUNT1”,“MOVAX,COUNT2”,“MOVAX,[COUNT2]”执行后有何异同?COUNT1EQU16HCOUNT2DW16H要求:编程实现该题目,并注意在代码段定义中,一定要有对数据段的初始化设置。3.阅读下面程序,分析该程序所实现的功能,并对程序中的所有语句给出注释,说明各语句在程序中的作用。DATASEGMENT;初始化时:记住DATA的段地址、记住SUM的内存单元、到堆栈里看看SUMDW0DATAENDSSTACKSEGMENTDB20DUP(33H)STACKENDSCODESEGMENTASS
3、UMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATA;看看AX里是否为DATA段地址MOVDS,AXMOVCX,50MOVAX,0MOVBX,2NEXT1:ADDAX,BXINCBXINCBXLOOPNEXT1MOVSUM,AX;到SUM里看看是否有结果MOVBX,SUMMOVAH,4CHINT21HCODEENDSENDSTART实验源程序:1.DATASEGMENTSTRDB'INTERNET'ADB30HBDB10CDB01010101BDDW10DUP(2009)DATAENDSCODESEGMENTASSUMEDS:DATA
4、,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAH,4CHINT21HCODEENDSENDSTART2.DATASEGMENTCOUNT1EQU16HCOUNT2DW16HDATAENDSSTACKSEGMENTSTACKSTACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAX,COUNT1MOVAX,COUNT2MOVAX,[COUNT2]MOVAH,4CHINT21HCODEENDSENDSTART3.DATASEGME
5、NT;初始化时:记住DATA的段地址、记住SUM的内存单元、到堆栈里看看SUMDW0DATAENDSSTACKSEGMENTDB20DUP(33H)STACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATA;看看AX里是否为DATA段地址MOVDS,AXMOVCX,50MOVAX,0MOVBX,2NEXT1:ADDAX,BXINCBXINCBXLOOPNEXT1MOVSUM,AX;到SUM里看看是否有结果MOVBX,SUMMOVAH,4CHINT21HCODEENDSENDSTART实验步骤及结
6、果分析:1.2.说明定义的COUNT1是用EQU伪指令三条指令分别执行后,结果相同解析:MOVAX,COUNT1的作用是将COUNT1所代表的立即数送给寄存器中AX;MOVAX,COUNT2的作用是将变量COUNT2存放在内存中得值送给寄存器AX;MOVAX,[COUNT2]的作用是将变量COUNT2存放在内存单元中字数据送给寄存器AX3.DATASEGMENT;初始化时:记住DATA的段地址、记住SUM的内存单元、;到堆栈里看看SUMDW0;由符号(变量名)SUM指定的内存单元类型定义为一个字,;初值为0DATAENDS;定义数据段结束STACKSEGMENT;定义
7、堆栈段DB20DUP(33H);定义堆栈段为20个字节的连续存储区,且每个字节的值为33HSTACKENDS;定义堆栈段结束CODESEGMENT;定义代码段ASSUMEDS:DATA,SS:STACK,CS:CODE;由ASSUME伪指令定义各段;寄存器的内容START:MOVAX,DATA;看看AX里是否为DATA段地址;由DS初始化为数据段首地址的16位段值DATAMOVDS,AX;将AX中的值作为数据段的首地址MOVCX,50;CX置入循环次数MOVAX,0;将AX累加器清0MOVBX,2;BX置常量1NEXT1:ADDAX,BX;累加偶数和