版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1页共 25 页汇编语言程序设计实验报告学号:班级:指导老师: 姓名: 实验时间 学院:目录实验一认识 Tddebug 集成环境 实验日志.3第2页共 25 页实验二 I/O 程序设计实验日志.4实验三 代码转换程序设计 实验日志.7实验四 分支程序设计实验报告 .12附录:源代码.15实验一:.15实验二第 1 题.16实验二第 2 题.17实验二第 3 题.18实验二第 4 题.19实验三第 1 题.20实验三第 2 题.22实验三第 3 题.23实验四.24第3页共 25 页实验一认识Tddebug集成环境实验日志实验目的:1.熟悉汇编程序的开发过程。2.认识 Tddebug 集成操作
2、软件。3.掌握在 Tddebug 集成环境中编辑、编译、连接汇编语言程序方法。4.掌握 INT 21H 软件中断来调用 DOS 内部子程序的方法实验内容:1.打开 D 盘的 Tangdutddebugbintddebug.exe2.编辑源程序 hallo world,ALT+F 并生成一个扩展名为 ASM 的文本文件存盘3.编译原程序,ALT+C 选择编译,生成扩展名为 OBJ 的目标文件,出现错误则返回 到编辑窗口修改错误信息。4.链接目标程序。ALT+C 选择 link,生成 exe 文件5.运行可执行文件。ALT+R,弹出了程序运行的结果。6.使用 Rmun 菜单中的 Debug 调试程
3、序,查看各段内存分配情况,和单步执行数据 传送指令后各寄存器和数据段的内容。运行结果:心得体会:在这次试验中,认识tddebug集成开发环境,掌握汇编语言基本程序设计。由于是第一次实验,和课堂上理论知识的讲解还在初步阶段,没有涉及完整的汇编语言编程,因此不管是对于语言的运用和理解还是对集成开发环境的熟悉程度都很微薄。因此在实验过程遇到了许多小问题和困惑,不过在老师和同学帮助下都明白了不懂得地方。(1) 第一个问题是编程界面太小,因为不能用鼠标定位不方便查看。通过仔细查看实验指导书,找到快捷键 F5 可以放大/缩小窗口。同时了解了软件的其它快捷键方式。(2) 第二个问题是第一次使用 tddebu
4、g 集成环境编辑汇编代码,发现不能直接使用复制粘 贴功能,就一行一行的敲代码。 后来发现,可以使用记事本拷贝源代码,然后通过改变后缀 名为 ASM 就能直接使用了。(3) 第一次看见完整的汇编程序,但是由于基础知识的匮乏,如此简单功能的程序也看不懂。最后在老师讲解后才稍微明白。不过这是基本功,需要在课堂上后课堂下的认真努力。第4页共 25 页实验二I/O程序设计实验日志实验目的:1.理解软中断的调用方法及中断过程。2.掌握 INT 21H 软件中断来调用 DOS 系统 I/O 子程序的方法。3.掌握将存储在内存单元中的数据在屏幕上显示的方法。4.掌握从键盘输入信息到内存的方法。实验内容:1.
5、【示例】:将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。设计思路:首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII 码送屏幕显示。其中 0H9H 之间的数加 30H,即可得 0H9H 的 ASCII 码,而AHFH 的 ASCII 码,则需再加 7H。2.编程由键盘输入任意一个字符,将该字符的ASCII 码值显示在屏幕上。设计思路:在第一题 MOV SI,OFFSET SD 之后增加如下代码段MOVAH, 01H ;键盘输入并回显INT 21HMOVDS:SI,AL ;将 AL 中键入的 ASCII 码存入数据段MOVAH, 02H ;输出回车换行符MOVDL, 0
6、AHINT 21H3从键盘输入两个 1 位十进制数,计算二者之和,并将结果显示在屏幕上。设计思路:用 01H 输入字符,减去 30H 再相加;结果大于 10,先输出“ 1”再减去 10 后输出结果(+30H ),小于 10 直接输出结果DATASEGMENTMOVDS:SI+1,AL;存入数据段NUM1DB 0NUM2DB 0MOVAH,02H ;显示字符=NUM3DB 0MOVDL,3DHDATAENDSINT21HCODESEGMENTMOVAL,DS:SI+1ASSUME CS:CODE,DS:DATAADDDS:SI+2,ALSTART:MOV AX,DA TACMPDS:SI+2,9
7、MOVDS,AXJSNEXT;小于 9 跳转MOVSI,OFFSET NUM1SUBDS:SI+2,10MOVAH, 01H;键盘输入并回显MOVAH,02H;显示字符“ 1 ”INT21HMOVDL,31HSUBAL,30HINT21HMOVDS:SI,AL;值存入数据段NEXT:MOVDS:SI+2,ALADDDS:SI+2,30HMOVAH,02H;显示结果MOVAH, 02H;显示字符+MOVDL,DS:SI+2MOVDL, 2BHINT21H第5页共 25 页INT21HMOVAH,4CH;返回 DOSMOVAH, 01H;键盘输入并回显INT21HINT21HCODEENDSSUB
8、AL,30HEND START第6页共 25 页4.编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上,例:5=00000101B设计思路:输入数存放入数据段(详细见第-判断 CF 是否为 1,选择输出 0,1一题),CX 付初值,循环左移 1 位,JC 获 jnc核心代码段:MOVCX,16A:RCLDS:SI,1JNCEQU0MOVDL, 31HJMPBEQUO: MOVDL, 30HB:MOVAH, 02HINT21HLOOP A运行结果:图 2.1 指定数据区以十六进制数形式显示在屏幕上在屏幕上的方法。第 7 页共 25 页图 2.2 键盘输入任意一个字符,显示将该字符的ASC
9、II图 2.3 键盘输入两个 1 位十进制数,计算和,显示结果图 2.4 由键盘输入任意一位数,以二进制数形式显示遇到的问题及解决方案:(1) 在做第四题,编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上。我初步的设计思想是,利用 RCL 后直接用输出用 MOV DL,CF,然后调用中断输 出答案。但是调试一直通不过。最后通过翻书上网查资料才知道,CF 寄存器不能直接使用 MOV 和 CMP 等指令,只能通过 JNC 获 JC 进行判断。(2) 同样是第四题,编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上。最开始我给 CX 赋初值 8 用于循环控制,但是当使用左移指令结果
10、始终是“00000000”,使用右移指令得到正确的反向结果(如 x=5,得到 10100000)。想了 很久才知道 CX=8 只判断了高 8 位,正确的应该是 CX=16(3)第三题和第四题没有考虑合法输入问题。比如第三题键盘输入两个1 位十进制数,第8页共 25 页计算和,显示结果。如果用户输入的不是两个数字而是字母等,程序仍然会运行。第四题要求输出 1 个数的二进制,如果用户输入一个字母,程序则输出对应ASCII码减去 30H 后的二进制。心得体会:在实验课上,对于后面三道题,需要自己编程,由于基础知识薄弱和畏惧 心理没能在课堂上全部完成。在课后自己终于把所有的习题都练习了, 感觉收获 很
11、多,不仅知识掌握了,更重要的是建立了学好汇编的信心。我在做这个实验的同时加强了对课本知识的巩固和加强, 由于课本上的知识 太多,平时课间的学习并不能很好的理解和运用各个中断语句和调整语句,所以在这次实验过程中,我们更深入的巩固了这些基本语法, 并且对于其在用汇编语 言更多的认识。在实验过程中,经常会遇到这样那样的情况,就是心里想老着C语言的方法该怎么做,但实际汇编解决的比如数制转换在C语言里根本不用实现,这也让我深刻的理解到为什么说汇编是与硬件联系很紧密的语言。实验三 代码转换程序设计实验日志实验目的:1.了解微机中所使用的各类数制及编码方法。2.掌握不同进制数及编码相互转换的程序设计方法,加
12、深对数码转换的理解。3.掌握将存储在内存单元中的数据以十六进制数形式、十进制数形式和二进制数形式显示在屏幕上的方法。第 7 页共 25 页实验内容:1.【示例】将 5 位十进制数的数字串转换为一个字的二进制数设计田相.Di10(Dn10Dni)10Dn2)10可归纳出十进制数转换为二进制数的方法:从十进制数的最高位Dn开始做乘10 加次位的操作,依次类推,则可求出二进制数结果。2 编写程序将内存中一个字的数转换为十进制数的数字串显示4321NDD410 D310 D210 D110 Do因此,将十六位二进制数转换为5 位 ASCII 码表示的十进制数数字串,即采用除 10 取余方法,分别求D0
13、 D4,并将它们转换为 ASCII 码。以字符串方式显示在屏幕上DDATA SEGMENT次运算MES DB The decimal code of binary code are:$CMPAL,0BUF DW 03FEH ;十进制 1022 及 DW 03FEHLOOPNZADB 5 dup (0)DDATA ENDSMOVDX,OFFSET MES ;显示提示信息CODE SEGMENTMOVAH,09HASSUME CS:CODE,DS:DDA TAINT21HSTART:MOVAX,DDA TAMOVCX,5MOVDS,AXMOVSI,OFFSET BUFMOVSI,OFFSET BU
14、FADDSI,2MOVAX,DS:SIB: MOVDL,DS:SI;显示十进制字符串MOVBL,0AH;送被除数MOVAH,02HADDSI,7 ;SI 指向存储位置末尾INT21HMOVCX,5INCSIA: DEC SI;SI=SI-1LOOP BDIV BL;被除数在 AX 中,除数在 BL 中,结果的商在 AL中,余数在 AH 中MOVAH,4CH ;返回 DOSADDAH,30HINT21HMOVDS:SI,AHCODEENDSMOVAH,0;清零余数,是 AX 参与下ENDSTART3.编程将十进制的数字串转换为BCD 码设计要求:5 位十进制数的数字串 “54321”的 ASCI
15、I 码存放在数据区中, 转换为 BCD 码后, 将转换结果分别显示在屏幕上,即显示:01, 02, 03, 04, 05。若输入的不是十进制数的ASCII 码,则输出“ FF”。提示:一个字节取其低DDATA SEGMENTMES DB The BCD code of decimal code are:$BUF DB a,7,8,3,4 ;5 位十进制数的数字串a7834 DB 5dup (0)DDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DDA TAAX,DDA TADS,AXSI,OFFSET BUFCX,5BL,46HAL,DS:SI;判断是否是数字JC
16、 NONUMCMP AL,9JNCNONUMSUB AL,30HMOVBL,ALNONUM:MOV DS:SI+5,BLINC SILOOP AMOVDX,OFFSETMES;显示提示信息MOVAH,09HINT21HMOVCX,5MOVSI,OFFSET BUFADDSI,5B:Di)10Do由上式设计思想:五4 位即变为 BCD 码。START:MOVMOVMOVMOVA:MOVMOVCMP AL,0第10页共 25 页MOVAL,DS:SICMPAL,46HJZFF1 ;若不是数字,跳转到MOVDL,30HMOVAH,02HINT21HMOVAL,DS:SIANDAL,0FH ;取低四位
17、FF1 输出ADDAL,30HINT21HMOVDL,ALMOVAH,02HBF: MOVDL,2CHINT21HMOVAH,02HJMPBF ;数字情况输岀完成INT21HFF1:INCSIMOVDL,46HLOOP BMOVAH,02HMOVAH,4CH ;返回 DOSINT21HINT21HMOVDL,46HCODEENDS4 .编程将设计思想:BCD 码转换为二进制数十进制转换为 BCD 存入存储区:高四位,第四位分别放置BCD 码转换为二进制:十位每(1)(2)(3)二进制转换 16 进制输出:*10+个位4 位输出一次,注意 A-F 的情况MES DB The binary cod
18、e of BCD code are:$MOVAX,0BUF DB 17,34,51,68;4 位十进制数MOVAL,DS:SI+5DB 8 dup (0h)MOVBL,0AHDDATA ENDSMULBL;乘法 al*blCODE SEGMENTADDAL,DS:SI+4ASSUME CS:CODE,DS:DDA TAADCAH,0main proc farSTART:MOVAX,DDA TAMOVBX,AXMOVDS,AXcallbitohe;调用子程序MOVDX,OFFSETMOVDL,2CHMES;显示提示信息MOVAH,02HMOVAH,09HINT21HINT21HADDSI,2MO
19、VSI,OFFSET BUFINCDHMOVDI,OFFSET BUFCMPDH,4MOVCX,4JCB;A 段将 BCD 码存入数据段A:MOVAL,DS:DIMOVAH,0HMOVAH,4CHMOVBL,0AHINT21HDIVBLRETMOVDS:SI+4,AH;个位main endp;返回 DOSMOVADDADDdecjnzDI,1SI,2cxA;子函数将 bx 中二进制转 16 进制输岀bitohe PROCmov ch, 4rotate: movrolNEARcl.4bx, clMOVDH,0MOVSI,OFFSET BUFmoval,blandal, 0fhaddal, 30h
20、cmpal, 39hjcprintitaddal, 07hprintit: movdl, almovah, 2图 3.1 将 5 位十进制数的数字串转换为一个字的二进制数;十进制及DU B3FEH运行结果:Tlie decnaJ. cade o bincode are :7十进命ij工吊马Piess anp ke to con-txrB:;将 BCD 码转换为二进制十位*10+个位SEGMENTDDATA,结果送到 axDS:SI+5,AL;十位MOVAH,02HENDSTARTq图 3.2 内存中一个字的数转换为十进制数的数字串;弓位+进制数的数字串-弘code of declma1 cod
21、e are =B502Piess anv監住y t o cont inue第 9 页共 2第13页共 25 页图 3.3.1 将十进制的数字串转换为BCD 码;5位十进制数的數字串57胸创BUF仙17,311,51,66;谥十进制數9 C:-. WINDU WSX ty stem32cnid -ew ehe binary code of BCD cod乜ape:0011.0022,0033,0044,Press已n屮ke ta ctrntlnuue图 3.4 BCD 码转换为二进制数,并以 16 进制输岀RETbitoheint dec jnzENDP21h ch rotateCODEENDS
22、ENDSTART第14页共 25 页遇到的问题及解决方案:(1)第2题中,需要用到除法指令DIV;实验指导书上标记除法的商存放在AX, 余数存放在被除数在AX中,除数在DX中,由于自己的一知半解,造成 大量的调试时间浪费。最后才知道div当除数为字节是,有两种情况,第 一种是被除数在AX中,此时AL中是商,AH中是余数;另一种情况是, 被除数在DX中,AX是商,DX是余数。(2)第3题中,当输入不合法是输出FF,由于初步设计想用直接在数字基础 上+07h实现,不过由于水平有限没有能够使用这种办法完成。采用比较 冗长的另外分支专门负责FF的输出。(3)第4题比较复杂,涉及到三种不同的代码转换方式
23、。 但在实验过程中,我 遇到的困难不是算法上的,而是由于粗心浪费了很长时间才完成程序。 在 存放BCD码进入存储区时,习惯性的用DEC SI来控制指针位置,实际 上由于每个BCD码分高低字节存放,应该每次自加2心得体会:通过这一次的代码转换程序设计实验,由于老师细心的讲解和自己踏踏实 实做了每一道习题,感觉汇编编程能力得到极大提高。熟练掌握了了解微机中所 使用的各类数制及编码方法。充分了解不同进制数及编码相互转换的程序设计方 法, 加深对数码转换的理解。 掌握将存储在内存单元中的数据以十六进制数形式、十进制数形式和二进制数形式显示在屏幕上的方法。除此之外,通过用debug工具通过单步运行调试程
24、序,找出错误的的反复练 习,自己的调试程序水平在这一次实验中有了质的飞跃。 在实际编程中,也遇到 很多问题,由于以前练习不够,就连乘除基本指令也用得不熟悉, 增加了编程时 间。不过通过实践来掌握理论的方法,更能学以致用更能掌握透彻。第15页共 25 页实验四 分支程序设计 实验日志实验目的:1.掌握比较指令、条件转移指令的用法2.掌握分支结构程序的组成3.掌握分支程序的设计、调试方法实验内容:随堂测试,规定时间了独立编写程序。(1) 从键盘盘输入一个字符(2) 判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。(3) 用 16 进制显示其 ASCII 码(4) 要求使用子函数调
25、用流程图:详细设计:DATA SEGMENT USE16MESG1 DB It is a number! $图 4.2 子程序输出 ascii 码第16页共 25 页MESG2DBIt is a BIG word! $ MESG3DBIt is a small word! $NUMBERDBAN1EQUON2EQU9S1EQUZa2 EQU aDATAENDSCODESEGMENT USE16ASSUMECS:CODE,DS:DATAmain proc farBEG:MOVAX,DATAMOVDS, AXMOVDX,OFFSETMESG3MOVAH, 01HINT21HMOVNUMBER, A
26、LCMPNUMBER, N2JAEBIGMOVDX, OFFSETMESG1JMPDISPBIG:CMPNUMBER, S1JAESMLLMOVDX, OFFSETMESG2SMLL:CMPNUMBER, a2JBEDISPMOVDX,OFFSET MESG3DISP:MOVAH, 9INT21HCALLSUBR1MOVAH,4CHINT21HRETmain endpCODE ENDSEND BEGMOVAL,NUMBERANDAL,0F0HMOVCL,4SHRAL,CLCMPAL,0AHJBC2ADDAL,07HADD AL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,N
27、UMBERANDAL,0FHCMPAL,0AHJBC3ADDAL,07HADD AL,30HMOVDL,ALMOVAH,02HINT21HSUBR1 PROC NEARC2:C3:RETSUBR1 ENDP第17页共 25 页运行结果:第18页共 25 页图 4.1 输入数字图 4.2 输入大写字母第19页共 25 页图 4.3 输入小写字母遇到的问题及解决方案:(1) 对题目了解得不完整,刚开始没有做 ASCII 码的输出部分(2) 不完全熟悉子程序调用,通过重新看书,才现场学好使用子程序调用(3) 只判断了大小写字母和数字,忽略了其它情况下字母的判断。心得体会:这是本学期最后一次汇编语言实
28、验课,实验课结束,从中领悟到不少东西 了.首先,学习汇编要有一定的基础:电子技术方面要有数字电路和模拟电路等接口电路方面的理论基础,特别是数字电路;编程语言要求汇编语言或C语言。 这些前面的知识都对学习好汇编语言至关重要。 然后,是开发工具和开发环境的。 这是我在实验过程中收获最大, 熟悉最快的一部分, 也是比不可少的工具。 最后, 就是要靠自己多练习了。仅仅四次汇编实验是远远不够的,在老师的指导和指引 下相信我们一定能对汇编编程有更大的兴趣, 并能通过自己的努力更好的学好这 门计算机的基础语言。附录:源代码实验一:DDATA SEGMENTMSR DB HELLO,WORLD!$LEN EQ
29、U $- MSRDDATA ENDSEXDA SEGMENTMSD DB LEN DUPEXDA ENDSMYSTACK SEGMENT STACKDW 20 DUP(?)MYSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DDA TA,ES:EXDASTART: MOV AX,DDATAMOV DS,AX第20页共 25 页MOVAX,EXDAMOVES,AXMOVSI,OFFSET MSRMOVDI,OFFSET MSDMOVCX, LENMOVBX,0NEXT:MOVAL,MSRBXMOVES:MSDBX,ALINCBXLOOPNEXTPUSHESPOPD
30、SMOVDX,OFFSET MSDMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSEND START实验二第1题DATA SEGMENTMES DB Show a as hex:,0AH,0DH,$;换行,回车SD DB aDATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATASTART: MOV AX,DA TAMOVDS,AXMOVDX,OFFSET MES ;显示提示信息MOVAH,09HINT21HMOVSI,OFFSET SDMOVAL,DS:SI;间址寻址ANDAL,0F0H;取高 4 位MOVCL,4SHRAL,CL;逻辑右移
31、CMPAL,0AH ;是否是 A 以上的数第21页共 25 页JBC2ADDAL,07HC2: ADDAL,30HMOVDL,AL;显示字符MOVAH,02HINT21H;显示高位MOVAL,DS:SIANDAL,0FH;取低 4 位CMPAL,0AHJBC3ADDAL,07HC3: ADDAL,30HMOVDL,AL;显示字符MOVAH,02HINT21HMOVAH,4CH;返回 DOSINT21HCODE ENDSENDSTART实验二第2题DATA SEGMENTMES DB Show ? as hex:,0AH,0DH,$;换行,回车SD DB aDATA ENDSCODE SEGME
32、NTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOVDS,AXMOVDX,OFFSET MES ;显示提示信息MOVAH,09HINT21HMOVSI,OFFSET SDMOVAH,01HINT21HMOVDS:SI,ALMOVAH, 02HMOVDL, 0AHINT21H第22页共 25 页MOVAL,DS:SI;间址寻址ANDAL,0F0H;取咼 4 位MOVCL,4SHRAL,CL;逻辑右移CMPAL,0AH ;是否是 A 以上的数JBC2ADDAL,07HC2: ADDAL,30HMOVDL,AL;显示字符MOVAH,02HINT21H;显示高位
33、MOVAL,DS:SIANDAL,0FH;取低 4 位CMPAL,0AHJBC3ADDAL,07HC3: ADDAL,30HMOVDL,AL;显示字符MOVAH,02HINT21HMOVAH,4CH;返回 DOSINT21HCODE ENDSENDSTART实验二第3题;实验 2-3 从键盘输入两个 1 位十进制数,计算二者之和,并将结果显示在屏幕上。DATA SEGMENTNUM1 DB 0NUM2 DB 0NUM3 DB 0DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATASTART: MOV AX,DA TAMOVDS,AXMOVSI,OFFSET NU
34、M1MOV AH, 01H;键盘输入并回显INT 21H第23页共 25 页SUBMOVMOVAL,30HDS:SI,ALDS:SI+2,AL;将键入值存入数据段MOVAH, 02H;显示字符+MOVDL, 2BHINT21HMOVAH, 01H;键盘输入并回显INT21HSUBAL,30HMOVDS:SI+1,AL;将键入值存入数据段MOVAH,02H;显示字符=MOVDL,3DHINT21HMOVAL,DS:SI+1ADDDS:SI+2,ALCMPDS:SI+2,9JSNEXT;小于 9 跳转SUBDS:SI+2,10MOVAH,02H;显示字符“ 1”MOVDL,31HINT21HNEX
35、T:ADDDS:SI+2,30HMOVAH,02H;显示结果MOVDL,DS:SI+2INT21HMOVAH,4CH;返回 DOSINT21HCODE ENDSENDSTART实验二第4题;编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上,例:DATA SEGMENTMES DB Show ? as binary:,0AH,0DH,$;换行,回车SD DB 05=00000101B第24页共 25 页DATA ENDS第25页共 25 页CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOVDS,AXMOVDX,OFFSET
36、MES ;显示提示信息MOVAH,09HINT21HMOVSI,OFFSET SDMOVAH, 01HINT21HMOVDS:SI,ALMOVAH, 02HMOVDL, 0AHSUBDS:SI,30HINT21HMOVCX,16A:rcl DS:SI,1JNCEQU0MOVDL,31HjmpBEQU0:MOVDL,30HB:MOVAH,02HINT21HLOOP AMOVAH,02HMOVDL,42HINT21HMOVAH,4CH;返回 DOSINT 21HCODE ENDSEND START实验三第1题DDATA SEGMENTMES DB The ascii code of decimal
37、 code are:$第26页共 25 页CODE SEGMENTASSUME CS:CODE,DS:DDA TASTART:MOVAX,DDA TADS,AXSI,OFFSET BUFBL,0AHCX,0004HAH,00HAL,SIAL,30H;送被乘数;送转换位数;取第一位 ASCII 码MOVMOVMOVMOVMOVMOVSUBA1:INCSIIMULBL;乘 10ADDAL,SISUBAL,30HLOOPA1MOVBX,AXMOVDX,OFFSET MES;显示提示信息MOVAH,09HINT21HMOVAX,BX;显示结果MOVCX,4A3:PUSHCXMOVCL,4ROLAX,C
38、LPOPCXMOVBX,AXANDAL,0FHCMPAL,0AHJBA2ADDAL,07HA2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAX,BXLOOPA3MOVAH,4CHINT21HCODE ENDSENDSTARTBUF DB 30H,30H,30H,31H,32HDB 10H DUP(0)DDATA ENDS;十进制 00012 的 ASCII 码第27页共 25 页实验三第2题DDATA SEGMENTMES DB The decimal code of bin ary code are:$BUF DW 03FEH;十进制 1022 及 DW 03FE
39、HDB 5 dup (0)DDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DDA TASTART:MOVAX,DDA TAMOVDS,AXMOVSI,OFFSET BUFMOVAX,DS:SIMOVBL,0AH;送被除数ADDSI,7;SI 指向存储位置末尾MOVCX,5A: DECSI;SI=SI-1DIVBL;被除数在 AX 中,除数在 BL 中,结果的商在 AL 中,余数在 AH中ADDAH,30HMOVDS:SI,AHMOVAH,0;清零余数,是 AX 参与下次运算CMPAL,0LOOPNZAMOVDX,OFFSET MES;显示提示信息MOVAH,09HINT21HMOVCX,5MOVSI,OFFSET BUFADDSI,2B: MOVDL,DS:SI;显示十进制字符串MOVAH,02HINT21HINCSILOOP BMOVAH,4CH;返回 DOSINT21HCODEENDSENDSTART第28页共 25 页实验三
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五个人个人土地承包经营合同示范文本
- 二零二五年度环保工业园区施工环保及文明规范协议3篇
- 二零二五年度二手房买卖合同:环保家居版3篇
- 苗木销售合同集合
- 货物运输物流服务合同
- 装修未按时交工合同范本
- 黔东南防腐地坪施工方案
- 长沙衣帽间装修施工方案
- 用工劳务合同
- 《员工个税申报赡养老人专项附加扣除指定分摊协议》
- 寺院消防安全培训课件
- 比摩阻-管径-流量计算公式
- 专题23平抛运动临界问题相遇问题类平抛运和斜抛运动
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、异丙醇和正丁醇检验
- 五年级数学应用题100道
- 西方经济学(第二版)完整整套课件(马工程)
- 高三开学收心班会课件
- GB/T 33688-2017选煤磁选设备工艺效果评定方法
- 科技计划项目申报培训
- 591食堂不合格食品处置制度
- 黑布林绘本 Dad-for-Sale 出售爸爸课件
评论
0/150
提交评论