实验6汇编程序语法和数据定义伪指令.doc

上传人:doc321 文档编号:14912328 上传时间:2022-02-24 格式:DOC 页数:6 大小:74.50KB
返回 下载 相关 举报
实验6汇编程序语法和数据定义伪指令.doc_第1页
第1页 / 共6页
实验6汇编程序语法和数据定义伪指令.doc_第2页
第2页 / 共6页
实验6汇编程序语法和数据定义伪指令.doc_第3页
第3页 / 共6页
实验6汇编程序语法和数据定义伪指令.doc_第4页
第4页 / 共6页
实验6汇编程序语法和数据定义伪指令.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《实验6汇编程序语法和数据定义伪指令.doc》由会员分享,可在线阅读,更多相关《实验6汇编程序语法和数据定义伪指令.doc(6页珍藏版)》请在三一文库上搜索。

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)对下面数据定义,指令“MOV AX,COUNT1”,“MOV AX,COUNT2”,“MOV AX,COUNT2”执行后有何异同? COUNT1 EQU 16H COUNT2 DW 16H 要求:编程实现该题目,并注意在代码段定义中,一定要有对数据段的初始化设置。3.阅读下面程序,分析该程序所实现的功能,并对程序中的所有语句给出注释,说明各语句在程序中的作用。DATASEGMENT ;初始化时:记住DATA的段地址、记住SUM的内存单元、到堆栈里看看SUM DW 0 DATA ENDSSTACKSEGMENT DB 20 DUP(

3、33H) STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX,DATA ;看看AX里是否为DATA段地址 MOV DS,AX MOV CX,50 MOV AX,0 MOV BX,2NEXT1:ADD AX,BX INC BX INC BX LOOP NEXT1 MOV SUM,AX ;到SUM里看看是否有结果 MOV BX,SUM MOV AH,4CH INT 21HCODE ENDSEND START实验源程序:1. DATA SEGMENTSTR DB INTERNETA DB 30HB DB 10C DB

4、01010101B D DW 10 DUP(2009)DATA ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX,DATAMOV DS,AXMOV AH,4CHINT 21HCODE ENDS END START 2.DATA SEGMENT COUNT1 EQU 16H COUNT2 DW 16HDATA ENDSSTACK SEGMENT STACKSTACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX,DATA MOV DS,AX M

5、OV AX,COUNT1 MOV AX,COUNT2 MOV AX,COUNT2 MOV AH,4CH INT 21HCODE ENDS END START 3. DATASEGMENT ;初始化时:记住DATA的段地址、记住SUM的内存单元、到堆栈里看看SUM DW 0 DATA ENDSSTACKSEGMENT DB 20 DUP(33H) STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX,DATA ;看看AX里是否为DATA段地址 MOV DS,AX MOV CX,50 MOV AX,0 MOV BX,2

6、NEXT1:ADD AX,BX INC BX INC BX LOOP NEXT1 MOV SUM,AX ;到SUM里看看是否有结果 MOV BX,SUM MOV AH,4CH INT 21HCODE ENDSEND START 实验步骤及结果分析:1.2. 说明定义的COUNT1是用EQU伪指令 三条指令分别执行后,结果相同 解析:MOV AX,COUNT1 的作用是将COUNT1所代表的立即数送给寄存器中AX;MOV AX,COUNT2的作用是将变量COUNT2存放在内存中得值送给寄存器AX;MOV AX,COUNT2的作用是将变量COUNT2存放在内存单元中字数据送给寄存器AX3. DAT

7、A SEGMENT ;初始化时:记住DATA的段地址、记住SUM的内存单元、;到堆栈里看看SUM DW 0 ;由符号(变量名)SUM指定的内存单元类型定义为一个字,;初值为0DATA ENDS ;定义数据段结束STACKSEGMENT ;定义堆栈段 DB 20 DUP(33H) ;定义堆栈段为20个字节的连续存储区,且每个字节的值为33H STACK ENDS ;定义堆栈段结束CODE SEGMENT ;定义代码段 ASSUME DS:DATA,SS:STACK,CS:CODE ;由ASSUME伪指令定义各段;寄存器的内容START: MOV AX,DATA ;看看AX里是否为DATA段地址;

8、由DS初始化为数据段首地址的16位段值DATA MOV DS,AX ;将AX中的值作为数据段的首地址 MOV CX,50 ;CX置入循环次数 MOV AX,0 ;将AX累加器清0 MOV BX,2 ;BX置常量1NEXT1: ADD AX,BX ;累加偶数和,计50次 INC BX ;求下一个偶数,BX加1 INC BX ;BX加1 LOOP NEXT1 ;循环且计数器CX减1 MOV SUM,AX ;累加和送入SUM单元,到SUM里看看是否有结果 MOV BX,SUM ;将累加和送入BX MOV AH,4CH ;DOS功能调用语句,机器将结束本程序的运行, INT 21H ;并返回DOS状态CODE ENDS ;代码段结束 END START ;整个程序汇编结束解析:改程序实现的是求从2开始连续50个偶数的和,然后将结果存放在定义为SUM的字存储单元中,再将结果送入寄存器BX中。重要命令集锦:MOV,LOOP, INT,INC,ADD实验小结:通过这次实验,我学会了自我编程的相关定义,以及注意的细节,并对跳转指令loop的作用以及使用有了进一步的了解,并且可以对已编的程序语句进行一定的注释分析,为以后的进一步学习奠定了相应的基础,受益匪浅。6 / 6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1