《汇编程序及试验一》PPT课件.ppt

上传人:tia****nde 文档编号:13126120 上传时间:2020-06-05 格式:PPT 页数:98 大小:448KB
返回 下载 相关 举报
《汇编程序及试验一》PPT课件.ppt_第1页
第1页 / 共98页
《汇编程序及试验一》PPT课件.ppt_第2页
第2页 / 共98页
《汇编程序及试验一》PPT课件.ppt_第3页
第3页 / 共98页
点击查看更多>>
资源描述
第4章汇编语言程序设计,白云飞byf156,微型计算机原理与接口技术,本章主要内容:,汇编语言源程序的结构汇编语言语句格式伪指令功能调用汇编语言程序设计,微型计算机原理与接口技术,4.1汇编语言源程序,了解:计算机的三种语言源程序的结构汇编语言语句格式,微型计算机原理与接口技术,一、计算机设计语言,机器语言汇编语言高级语言,面向机器的语言,机器语言,汇编语言,高级语言,微型计算机原理与接口技术,汇编程序,汇编语言源程序,用助记符编写,源程序的编译程序,汇编程序,汇编语言源程序,机器语言目标程序,微型计算机原理与接口技术,汇编程序的功能,汇编程序的主要功能是将由汇编语言(助记符)编写的源程序翻译成用机器语言(二进制代码)编写的目标程序。下图可用以说明这个功能。,微型计算机原理与接口技术,汇编程序的功能,目标代码文件:其中的地址数据还是浮动的(相对的),不能直接运行;列表文件:包含程序的逻辑地址、代码程序及源程序对照清单,附有引用符号表,可用DOS的TYPE命令输出;交叉索引文件:包含了符号定义行号和引用行号,不能用TYPE命令输出,需要执行CREF文件后生成索引列表文件(REF)才能输出。,观察可得:汇编语言源程序作为汇编程序(MASM或ASM)这个“翻译”的输入,而这个“翻译”的输出是三个文件:,微型计算机原理与接口技术,取值运算符,OFFSET取得其后变量或标号的偏移地址SEG取得其后变量或标号的段地址,TYPE取变量的类型LENGTH取所定义存储区的长度SIZE取所定义存储区的字节数,用于分析存储器操作数的属性,微型计算机原理与接口技术,取值运算符,取值运算符的格式:(1)SEG求段基址格式:SEG符号名(2)OFFSET求偏移地址格式:OFFSET符号名(3)TYPE求符号名类型值格式:TYPE符号名,微型计算机原理与接口技术,取值运算符,(4)SIZE求为符号名分配的字节数格式:SIZE符号名(5)LENGTH求为符号名分配的项数格式:LENGTH符号名注意:SIZE和LENGTH要求为符号名定义的数据项必须是用重复格式DUP()定义的。,微型计算机原理与接口技术,取值运算符例,MOVAX,SEGDATAMOVDS,AXMOVBX,OFFSETDATALEABX,DATA,等价于,微型计算机原理与接口技术,取值运算符例,若BUFFER存储区是用如下伪指令定义:BUFFERDW200DUP(0)则:TYPEBUFFER等于2LENGTHBUFFER等于200SIZEBUFFER等于400注意:SIZE=TYPE*LENGTH,微型计算机原理与接口技术,属性运算符,属性运算符PTR用于指定其后存储器操作数的类型格式:(类型)PTR(符号名)例1:MOVBYTEPTRBX,12H例2:已知内存变量D1是字节属性,要把它的两个字节内容送到AX中。MOVAX,WORDPTRD1,微型计算机原理与接口技术,其它运算符,方括号:方括号中内容为操作数的偏移地址段重设符段寄存器名:用于修改默认的段基地址例:MOVAX,BXMOVAX,ES:BX,微型计算机原理与接口技术,4.2伪指令,掌握:伪指令的格式及实现的操作伪指令的应用,微型计算机原理与接口技术,伪指令,由汇编程序执行的“指令系统”。伪指令没有对应的机器指令,它不是由8086/8088CPU来执行,而是由MASM-86识别,并完成相应的功能。用于定义变量、分配存储区、定义逻辑段、指示程序开始和结束等,微型计算机原理与接口技术,标号名,伪指令,操作数,注释,,,伪指令语句格式,这是一个任选字段。标号名后面不能用冒号“:”,这是它与指令语句的突出区别。不同的伪指令,标号名可以是常量名、变量名、过程名、结构名、记录名等。它们可以作为伪指令语句和指令语句的操作数,这时,标号名就表示一个常量或存储器地址。,这是伪指令语句不可省略的主要成分。伪指令种类很多,如定义数据伪指令DB,DW,DD;段定义伪指令SEGMENT;定义过程伪指令PROC等。它们是伪指令语句要求汇编程序完成的具体操作命令。,本字段是否需要,需要几个,需要什么样的操作数等都由伪指令字段中伪指令来确定。操作数可以是一个常数、字符串、常量名、变量名、标号、一些专用的符号等。,这是一个任选字段,它必须以分号为开始,它的作用与指令语句的注释字段相同。,伪指令语句格式,微型计算机原理与接口技术,伪指令,MASM-86识别的伪指令可分成以下几类:(1)符号定义伪指令(8)定位伪指令(2)内存数据定义伪指令(9)列表伪指令(3)段定义伪指令(10)系统隐含进位制伪指令(4)段寄存器说明伪指令(11)连接伪指令(5)子程序定义伪指令(12)记录伪指令(6)模块开始伪指令(13)结构伪指令(7)模块结束伪指令(14)块注释伪指令(15)宏命令伪指令,微型计算机原理与接口技术,符号定义伪指令,格式:(1)名字EQU表达式(2)名字=表达式作用:把表达式的值赋给符号名。区别:在同一程序中,用EQU语句赋值的符号名不能被重新赋值,但用“=”号赋值的符号名可以被重新赋值。“”号表示此项不能缺省,但该符号不需要输入。,微型计算机原理与接口技术,符号定义伪指令,例:CONSTANTEQU100VAREQU30H+99H,EQU说明的表达式不占用内存空间,微型计算机原理与接口技术,内存数据定义伪指令,用于定义数据区中变量的类型此指令主要有以下五大类:,字节定义伪指令DB定义的变量为字节型字定义伪指令DW定义的变量为字类型四字节定义伪指令DD定义的变量为双字型八字节定义伪指令DQ定义的变量为4字型十字节定义伪指令DT定义的变量为10字节型,微型计算机原理与接口技术,字节定义伪指令,格式:名字DB表达式或数据项表表达式值或项表中的每一项是一个字节数,它们从符号名地址开始按字节连续存放,直到表中数据项结束(地址递增方向)。方括号表示该项可以缺省。,字定义伪指令,格式:名字DW表达式或数据项除表达式值或项表中的每一项是两个字节数之外,其它与DB伪指令相同。,微型计算机原理与接口技术,四字节定义伪指令,格式:名字DD表达式或数据项表达式值或项表的每一项是四个字节数。,八字节定义伪指令,格式:名字DQ表达式或数据项表表达式值或数据项表的每一项是八字节数,各项从小地址一端连续存放,允许浮点数形式,与DD伪指令相同。高四个字节填0。,微型计算机原理与接口技术,十字节定义伪指令,格式:名字DT表达式或数据项表表达式值或数据项表的每一项是10个字节数,允许浮点数形式,与DQ伪指令相同,若项表中的数据项是十进制整数书写的,汇编程序按组合的BCD码格式存放,最低字节在高地址一端存放,数据的最高字节的最高位是符号位,“0”表示正,“1”表示负。,微型计算机原理与接口技术,数据定义伪指令,该伪指令主要为数据项分配存储单元并预初值。该伪指令构成的语句格式是:DB变量名+DW+表达式1,表达式2,DD其中表达式1,表达式2,是给变量赋予的初值。表达式可以有如下几种情况:(1)数值表达式(2)?表达式(3)字符串表达式(4)带DUP表达式,微型计算机原理与接口技术,数值表达式,例如:DA_BYTEDB50H,50DA_WORDDW0A3F1H,4981H变量DA_BYTE的内容为50H,它的下一个字节为32H。DA_WORD字单元内容为0A3F1H,它的下一字单元为4981H。,?表达式,不带引号的?表示可预置任何内容。例如:DA_BDB?,?DA_WDW?,?第一条语句是要求汇编程序分配两个字节单位,第二条语句是要求分配两个字单元。这些单元里现在可以是任意值。,微型计算机原理与接口技术,字符串表达式,DB伪指令:为字符串中每一个字符分配一个字节单元。字符串必须是用引号括起来且不超过255个字符。字符串自左至右以字符的ASCII码按地址递增的排列顺序依次存放。DW伪指令:可以给两个字符组成的字符串分配两个字节存储器单元,且这两个字符ASCII码的存储顺序是前一字符在高字节,后一字符在低字节,每一个数据项不能多于两个字符。DD伪指令:仅可给两个字符组成的字符串分配四个字节单元,且这两个字符ASCII码是存储在两个低字节中,两个高字节均存放00H。,微型计算机原理与接口技术,字符串表达式,动画,STRING1DBABCDEFSTRING2DWAB,CD,EFSTRING3DDAB,CD,微型计算机原理与接口技术,带DUP表达式,DUP是定义重复数据操作符。使用DUP操作符格式是:DB变量名+DW+表达式1DUP(表达式2)DD其中表达式1是重复的次数,表达式2是重复的内容例如:BB1DB12HDUP(ABCD)BB2DW10HDUP(4),微型计算机原理与接口技术,ARRAY1DB2DUP(0,1,2,?),ARRAY2DB100DUP(0,2DUP(1,2),0,3),700bytes,ARRAY2,例题,动画,微型计算机原理与接口技术,内存数据定义伪指令例题,VAR1DB32H,ABCVAR2DW1234H,40H,ABDD12345678HDB?,11000011BARRY1DB2DUP(0,1)ARRY2DW2DUP(?,1),微型计算机原理与接口技术,段定义伪指令,存储器在逻辑上是分段的,各段的定义由伪指令实现格式:段名SEGMENT定位方式连接方式类别名:段名ENDS段定义伪指令为程序的汇编和连接说明了段名、分段的各种属性以及分段的开始和结束。段名是自定义符,开始的段名与结束的段名必须相同。段的长度不超过64KB(字节)。SEGMENT后面的参数是可选项。,微型计算机原理与接口技术,定位方式,定位方式制定段的起始地址边界,方式有以下四种:(1)PAGE:指定起始地址的低8位是0,即其值能被256整除(称为页边界)。(2)PARA:指定起始地址的低4位是0,即其值能16整除(称为段边界)。缺省值是PARA(3)WORD:指定起始地址的最低位是0,即其值能被2整除(称为字边界)。(4)BYTE:指定起始地址是任意值。,微型计算机原理与接口技术,连接方式,连接方式告诉连接程序本段与其它段可按以下方式连接:(1)PUBLIC:告诉连接程序把本段与其它同名类别的段连接起来,公用一个段的起点地址,形成一个物理段。(2)STACK:表示本段是堆栈段。(3)空缺(NONE):表示本段不与任何段连接。(4)COMMON:表示本段与同名同类别的段共用同一段起始地址,即同名同类的段相重叠,段的长度是最长段的长度。(5)MEMORY:表示本段在连接时定位在所有段之上。(6)AT表达式:本段定位在表达式值指定的段地址处。,微型计算机原理与接口技术,连接方式,NONE:不组合,默认状态是NONEPUBLIC:依次连接(顺序由LINK程序确定)COMMON:覆盖连接STACK:堆栈段的依次连接AT表达式:段定义在表达式值为段基的节边界MEMORY:相应段在同名段的最高地址处,微型计算机原理与接口技术,类别名,类别名是合法的自定义符,它必须用单引号括起来。如代码段(CODE)、堆栈段(STACK)等。凡是类别名相同的段在连接时均按先后顺序连接起来,即不同模块连接时将相同类别的段放在连续的内存区域中。,微型计算机原理与接口技术,格式:ASSUME段寄存器:段定义名1,段寄存器:段定义名2,功能:说明所定义逻辑段的性质该伪指令告诉汇编程序在汇编时,段寄存器CS:、DS:、SS:和ES:应具有的符号段基址,以便汇编指令时确定段和建立错误信息。但是段寄存器实际值(CS除外)还要由传送指令在执行程序时赋值。,段寄存器说明伪指令,微型计算机原理与接口技术,例题,DATA_SEG1SEGMENT.(伪指令Directives);数据段内定义各类程序执行需要的相关的数据DATA_SEG1ENDSDATA_SEG2SEGMENT(伪指令Directives)DATA_SEG2ENDS;还可根据具体程序的需要,定义堆栈段供程序执行过程中保持临时数据,微型计算机原理与接口技术,例题,CODE_SEGSEGMENTASSUMECS:CODE_SEG,DS:DATA_SEG1,ES:DATA_SEG2START:MOVAX,DATA_SEG1MOVDS,AXMOVAX,DATA_SEG2MOVES,AX:;完成具体操作的指令序列CODE_SEGENDSENDSTART,实际操作(实现X+YZ),DATA1SEGMENT;数据段XDB05HYDB04HZDB?DATA1ENDSCODE1SEGMENT;代码段ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA;数据段基址AXMOVDS,AX;AXDSMOVAL,X;内存单元X的数据ALADDAL,Y;内存单元Y的数据+ALAL,即X+YALMOVZ,AL;AL内存单元Z,即求和结果送回ZMOVAH,4CH;送功能号INT21H;系统功能调用,返回操作系统CODE1ENDSENDSTART,微型计算机原理与接口技术,子程序定义伪指令,格式:过程名PROCNEAR(或FAR):过程名ENDP过程名是自定义符。定义过程是为实现子程序调用而设的。调用格式为:CALL过程名过程由RET指令返回,它可以不是最后一条指令,它在过程中可以设多点返回。并且过程起始名和终止名必须相同。,微型计算机原理与接口技术,例题,CODE_SEGSEGMENTBEGINPROCFARCALLNEARACALLFARBRETBEGINENDPAPROCNEARRETAENDPCODE_SEGENDS,CODE_SEG1SEGMENTBPROCFARRETBENDPCODE_SEG1ENDS,微型计算机原理与接口技术,宏命令伪指令,格式:宏名MACRO形式参数1,形式参数2,ENDM功能:宏命令伪指令为指令序列定义一个宏名,称为宏指令,宏名可以像指令一样在程序中引用。,.,宏体(指令序列),宏命令源程序中由汇编程序识别的具有独立功能的一段程序代码,微型计算机原理与接口技术,宏指令的使用,宏指令的使用步骤:(1)宏定义:对各个宏指令进行定义,并分别起一个名字;(2)宏调用:在需要使用的地方,通过宏指令名来调用它;(3)宏扩展:由宏汇编程序用宏定义中的指令来代替宏调用中的宏指令名。,微型计算机原理与接口技术,宏命令伪指令,当代换指令中的符号时,在其前面需加一个宏代换符字符串在内存中的存放地址,在数据段中定义缓冲区,微型计算机原理与接口技术,定义字符缓冲区,用户自定义缓冲区格式:,从第三个字节开始用来存放键入的字符串,微型计算机原理与接口技术,输出单字符,输出单字符2号系统功能调用格式:MOVDL,AMOVAH,2INT21H说明:执行2号系统功能调用时,将置入DL寄存器中的字符从屏幕上显示输出(或打印)。,;待输出字符A送到DL中,微型计算机原理与接口技术,输出字符串,输出字符串9号系统功能调用格式:BUFDBgoodbye$MOVDX,OFFSETBUFMOVAH,9INT21H说明:执行9号系统功能调用时,将内存缓冲区BUF中存放的字符串送屏幕显示输出(或打印),缓冲区中的字符串必须以“$”字符作为结束标志。,待输出字符串的偏移地址,微型计算机原理与接口技术,例,.BUFF2DBHowdoyoudo!$.MOVDX,OFFSETBUFF2;送字符串的首地址至DXMOVAH,09H;送功能号INT21H;系统功能调用显示字符串执行以上几条指令后,屏幕上将显示:Howdoyoudo!,微型计算机原理与接口技术,字符串输出显示例,DATASEGMENTMESS1DBInputString:0DH,0AH,$DATAENDSCODESEGMENTMOVAH,09MOVDX,OFFSETMESS1INT21H,微型计算机原理与接口技术,返回操作系统,返回操作系统4CH号系统功能调用格式:MOVAH,4CHINT21H说明:该调用没有入口参数,执行结果是结束当前正在执行的程序,并返回操作系统。屏幕显示操作系统提示符(N),N为当前使用驱动器名。,微型计算机原理与接口技术,程序的编辑、汇编及连接过程,汇编语言的程序一般要经过编辑、汇编(MASM或ASM)、连接(LINK)和调试(DEBUG)这些步骤。1建立源程序文件2汇编(MASM或ASM)源程序3程序连接4执行程序5调试程序,微型计算机原理与接口技术,汇编语言程序设计与执行过程,输入汇编语言源程序源文件.ASM汇编(编译)目标文件.OBJ链接可执行文件.EXE调试最终程序,微型计算机原理与接口技术,微型计算机原理与接口技术,实验操作步骤,在MS-DOS下,用Edit命令进入编辑状态,完成所编写程序的输入。程序编写完成后,将文件保存为xx.asm,并退出编辑状态。用masm命令对所编写的程序进行编译,格式如下:masmxx;回车用link命令对所编写的程序进行连接,格式如下:linkxx;回车运行程序命令格式如下:xx;回车,微型计算机原理与接口技术,实验操作步骤,用debug命令对所编写的程序进行调试,格式如下:debugxx.exe回车常用的debug命令:“T”回车,单步运行程序并显示寄存器状态。“R”回车,显示各寄存器内容。“DDS:XX”回车,察看数据段中偏移量为XXH的内存单元中的内容。“U”回车,反汇编当前机器码,也就是显示待执行的汇编语句。“GXX”回车,执行内存中的可执行代码,直到偏移量为XXH的代码为止。“Q”回车,退出DEBUG调试状态。在提示符状态下输入“Exit”命令,退出DOS模式。,微型计算机原理与接口技术,4.4汇编语言程序设计,设计步骤:根据实际问题抽象出数学模型确定算法画程序流程图分配内存工作单元和寄存器程序编码调试,微型计算机原理与接口技术,在计算机上进行程序设计过程,D:masmEDIT输入源程序D:masmMASM汇编D:masmLINK链接D:masmTD调试,微型计算机原理与接口技术,分支程序,分支程序是利用条件指令,使程序执行到某一指令后,根据条件是否满足,来改变程序执行的次序。这类程序使计算机有了判断作用。,微型计算机原理与接口技术,循环程序,循环程序是强制CPU重复执行某一指令系列的一种程序结构形式,凡是要重复执行的程序段都可以按循环结构设计。循环结构程序简化了程序执行过程。相反,增加了一些循环控制等环节,总的程序执行语句和时间会有所增加。循环程序的组成:循环程序的组成可分为初始化、循环化、循环控制和循环结束处理。,微型计算机原理与接口技术,循环程序,()初始化:完成建立循环次数计数器,设定变量和存放数据的内存地址指针的初值,装入暂存单元的初值等。()循环体:是程序的处理部分()循环控制:包括修改指针、修改变量为下一次循环作准备,以及修改循环计数器,判断循环次数完成否。()结束处理:主要用来分析和存放程序的结果。,循环程序基本结构框图,微型计算机原理与接口技术,循环程序例题2,例2:在一串数中找出最大值和最小值,并将最大值和最小值放在指定的存储单元中。,程序流程图,微型计算机原理与接口技术,循环程序例2程序体,DATASEGMENTBUFFERDWX1,X2,XnCOUNTEQU$-BUFFERMAXDW?MINDW?DATAENDSPROGSEGMENTASSUMECS:PROG,DS:DATASEHRCHPROGFARSTART:MOVAX,DATAMOVDS,AX,微型计算机原理与接口技术,循环程序例2程序体,MOVCX,COUNTSHRCX,1LEABX,BUFFERMOVAX,BXMOVDX,BXDECCXLP:INCBXINCBXCMPAX,BXJGENET1MOVAX,BX,微型计算机原理与接口技术,循环程序例2程序体,NEXT1:CMPDX,BXJLNEXT2MOVDX,BXNEXT2:LOOPLPMOVMAX,AXMOVMIN,DXMOVAH,4CHINT21HSEARCHENDPPROGENDSENDSTART,微型计算机原理与接口技术,子程序,子程序相对主程序而定,是一个子的程序段,确切地说,它是被父程序调用的程序。一般子程序具有公用性,重复性或有相对独立性的特点。,一子程序的调用与返回子程序的调用与返回由CALL和RET指令实现。子程序的调用实际上是程序的转移,但它与转移指令有所不同,转子指令CALL执行时要保护返回地址,而转移指令不考虑返回问题。每个子程序都有RET指令负责把压入栈后的返回地址弹出送IP或CS和IP(段间返回)实现程序返回。,微型计算机原理与接口技术,子程序,二子程序设计与应用应该注意的问题()现场保护与恢复子程序使用时,要注意寄存器内容的保护。由于CPU的寄存器的数量有限,子程序使用的寄存器往往会和调用的寄存器发生冲突,破坏了调用程序中寄存器的内容,影响了子程序返回后的继续处理。为了避免这种现象,在子程序入口处把所用寄存器的内容投入堆栈,保护起来,而在退出子程序前恢复寄存器的内容是必要的。恢复现场是保护现场的逆操作。当用栈区保护现场时,应注意恢复现场的顺序。,微型计算机原理与接口技术,CALLlabel,RET,子程序,主程序与子程序,微型计算机原理与接口技术,子程序,()参数传递指主程序与子程序之间相关信息或数据的传递。参数传递方式有寄存器传递,用内存单元传递或用栈区传递(寄存器、变量、地址表、堆栈等)。()子程序说明由于子程序有共享性,可被其它程序调用,因此,每个子程序应有必要的使用注释。主要包括:子程序名;功能、技术指标;占用寄存器和存储单元;入口、出口参数;嵌套哪些子程序,微型计算机原理与接口技术,子程序,三子程序调用技巧常用技巧()子程序嵌套子程序调用子程序的过程。()子程序递归子程序调用自身的过程。()可重入子程序子程序被调用后没有执行完又被另一程序重复调用。()协同子程序两个以上子程序协同完成一项任务,且又相互调用,直到任务完成。,微型计算机原理与接口技术,子程序举例,例1编写一子程序,完成一个2位十六进制数到对应的ASCII码的转换。子程序名:CONHA功能:将2位十六进制数转换成对应的ASCCII码输入参数:AL待转换的数输出参数:BX转换好的ASCII码使用寄存器:AL、AH、BX、CL,微型计算机原理与接口技术,子程序程序体,CONHAPROCFARMOVAH,AL;保存待转换的数ANDAL,0FH;处理十六进制数低位CMPAL,0AH;是16进制中的字母吗?JBASC1;否,转移ADDAL,07;是,先加7ASC1:ADDAL,30H;转换为ASCII码MOVBL,AL;保存转换好的低位MOVCL,4;移位控制,微型计算机原理与接口技术,子程序程序体,SHRAH,CL;将原数右移,处理高位CMPAH,0AH;是16进制中的字母吗?JBASC2;否,转移ADDAH,07;是,先加7ASC2:ADDAH,30HMOVBH,AH;保存转换好的高位RETCONHAENDP,微型计算机原理与接口技术,作业,3.1设VAR1和VAR2为字变量,LAB为标号,分析下列指令的错误之处,并加以改正.(1)ADDVAR1,VAR2(2)MOVAL,VAR2(3)JNZVAR13.2假设程序中的数据定义如下:LNAMEDB30DUP(?)ADDRESSDB30DUP(?)CITYDB15DUP(?)CODE-LISTDB1,8,4,3,5,微型计算机原理与接口技术,3.1ADD指令的源操作数和目的操作数不能同时为存储器单元。源操作数和目的操作数不匹配。条件转移指令的操作数应为标号,不能是变量。3.2MOVAX,OFFSETLNAMEMOVSI,WORDPTRCODE_LISTCODE-LENGTHEQU$-CODE_LIST,微型计算机原理与接口技术,作业,(1)用一条MOV指令将LNAME的偏移地址放入AX(2)用一条指令将CODE-LIST的前两个字节的内容放入SI(3)写一条伪指令操作使CODE-LENGTH的值等于CODE-LIST域实际长度3.3在X1起始地址中,有10个有符号字节数据,统计其中正数的个数,并将个数放在AH寄存器中。下面的程序段就是为实现上述功能而编写的,但有些语句丢失了,请补充完整。,微型计算机原理与接口技术,作业,CHARDB10DUP(?)(1)MOVBX,OFFSETCHARMOVAH,0MOVCX,10ADR2:(2)MOVAL,BX(3)ORAL,ALJSADR1INCAHADR1:INCBX(4)LOOPADR2,微型计算机原理与接口技术,作业,3.4分析下列程序,回答指定问题.XORAX,AXINCAXNEGAXMOVBX,3FFFHADCAX,BX问(AX)=3FFFH(BX)=3FFFHCF=1,微型计算机原理与接口技术,作业,3.5下列操作是利用DOS功能调用INT21H的1号功能模块,从键盘输入字符,并存到STR起始的存储区,遇到回车符(其ASCII码为0DH)结束.提示:出口参数AL=输入字符的ASCII码.STRDB100DUP(?)MOVSI,OFFSETSTRNEXT1:(1)MOVAH,1INT21H(2)MOVSI,AL(3)CMPAL,0DH,微型计算机原理与接口技术,作业,JENEXTINCSI(4)JMPNEXT13.6分析下面程序,指出运行结果.DATASEGMENTSUMDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,微型计算机原理与接口技术,作业,START:MOVAX,DATAMOVDS,AXXORAX,AXMOVBX,2MOVCX,10LOP1:ADDAX,BXINCBXINCBXDECCXJNZLOP1,微型计算机原理与接口技术,作业,MOVSUM,AXMOVAH,4CHINT21HCODEENDSENDSTART(1)该程序完成了什么功能?(2)程序执行完毕后,SUM单元的内容是什么?3.7编写程序实现将键盘输入的小写字母用大写字母显示出来.,微型计算机原理与接口技术,作业,3.8编写程序计算下面的值.2X(X10)3.9编写一个程序段,要求比较两个字符串STR1和STR2是否完全相等,若完全相等,则设置AL=1;若不完全相等,则设置AL=-1。,微型计算机原理与接口技术,作业,3.10设有一组无序的数据:25、46、3、75、-5、30,要求对它们进行排序,编写实现此功能的程序。3.11设有一个有符号数组,共M个字,编写一程序求其中最大的数。若要求绝对值最大的数,程序应该如何修改?又若数组元素为无符号数,求最大值的程序应如何修改?3.12编写一程序,把20个字节的数组分成正数组和负数组,并分别计算两个数组中的数据的个数。,微型计算机原理与接口技术,微型计算机原理与接口技术,微型计算机原理与接口技术,试验一:DEBUG软件的应用,DATASEGMENTSUMDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORAX,AXMOVBX,2,微型计算机原理与接口技术,MOVCX,10LOP1:ADDAX,BXINCBXINCBXDECCXJNZLOP1MOVSUM,AXMOVAH,4CHINT21HCODEENDSENDSTART,微型计算机原理与接口技术,(1)该程序完成了什么功能?(2)程序执行完毕后,SUM单元的内容是什么?,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!