2023年河北工业大学汇编实验报告.pdf

上传人:无*** 文档编号:90926981 上传时间:2023-05-18 格式:PDF 页数:43 大小:2.82MB
返回 下载 相关 举报
2023年河北工业大学汇编实验报告.pdf_第1页
第1页 / 共43页
2023年河北工业大学汇编实验报告.pdf_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《2023年河北工业大学汇编实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年河北工业大学汇编实验报告.pdf(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、汇编实验实验一顺序与分支程序设计-实验目的1)掌握顺序程序设计方法。2)掌握分支程序的结构及分支程序的设计,调试方法。2)学习数据传送及算术和逻辑运算指令的用法。3)熟悉在PC机上建立、汇编、连接、调试和运营汇编语言程序的过程。二、实验内容1)有一字变量BUF1是以原码表达的有符号数,规定将其转换为反码和补码,分别存入BUF 2 和 B U F3单元,并在屏幕上显示出来。2)有两个两字节无符号数分别放在存储单元A、B 起始的缓冲器中,求其和,结果放在A 起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。3)在 BUF和 BUF+1、BUF+2 单元分别放有一个无符号字节型数,编程序将其中

2、最大数存入MAX单元,并在屏幕上显示。4)规定同上,只是比较的数为有符号数。5)将 1000H单元开始的10个字节数,采用奇偶校验,将奇数在前偶数在后仍存回原数据区。本实验规定在DEBUG调试状态下进行,涉及汇编程序、运营程序、检查结果。6 )从键盘上接受一位十进制数X,计算Y 值,并以十六进制形式显示出来,Y 按下列公式计算。-X?+X Q X =3)_ X2-2 X(X =4)-1 X2(X =5)X2/2(X =6)7)从键盘上接受两个一位十六进制数X 和 Y,然后再输入一个A-D 之间的一个字符,按下列规定计算。a)当输入字符为A,则计算X+Y,并以十六进制形式显示出来b)当输入字符为

3、B,则计算|X-Y|,并以十六进制形式显示出来c)当输入字符为C,则计算X*Y,并以十六进制形式显示出来d)当输入字符为D,则计算X/Y,并以十六进制形式显示出来三 实验设备P C 机一台四 实验准备1)分析题目,将程序中的原始数据和最终结果的存取方法拟定好。2)画出流程图。3)写出源程序。4)对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。五、实验环节1)输入源程序。2)汇编、连接程序,生 成.EXE文献,执行文献,检查结果。六 实验报告的规定1)列出源程序,说明程序的基本结构,涉及程序中各部分的功能。2)说明程序中各部分所用的算法。3)说明重要符号和所用到寄存器的功能

4、。4)总结为什么在设计分支程序时必须解决三个问题:判断、转向和定标号。5)说明标志位CF、S F 和OF的意义。6)上机调试过程中碰到的问题是如何解决的。7)对调试源程序的结果进行分析。E x ami:D A T AS E G M E N T ;数据段B U F 1 D W 7 8 9 8 HB U F 2 D W 4 D U P (0),0 A H,O D H,7$B U F 3 D W 4 D U P (0),$D A T AE N D S ;数据段结束C O D ES E G M E N T ;代码段A S S U M E C S :C O D E,D S:D A T A ;段寄存器关联

5、说明伪指令B E G I N:M O V A X,D A T AMOV DS,A X;将数据段的基地址装入数据段寄存器D SM O V A X,B U F 1;将字型变量B U F 1的值装入A X寄存器A D D A X,0;A X寄存器里的数据加0,以便进行转移测试JS N E X T ;判 断(A X)的正负,若为负则转到N E X T,为正则往下顺序执行。M O V B U F 2,A X同样M O V B U F 3,A X原码同样JM P E E EN E X T:A N D A X,7 F F F HN O T A X反码M O V B U F 2,A XU F 1的反码装入B

6、U F 2I N C AXM O V B U F 3,A X装入B U F 3E E E:M O V C X,00 0 4 H计数器寄存器中;为正,反码与原码;为正,补码与;将符号位变为0;W B;将000 4 H装入C XM O V D I,O F F S E T B U F 2;将口1指向;求补码;求;将补码变 量B U F 2开始的存储单元M O V D X,D I:D I所指的数据装入D X寄存器中A D D D I,0 3针下移三个字B B B:M O V A X,D X入A X寄存器中A N D A X,0 0 O F HU F 2的低四位不变,其余均变为0C M P A L,0

7、A HO A H的大小,以便能对的转换为0-9的A S C H值J B Q Q QAH,则转到Q Q Q,否则,顺序执行A D D A L,0 7 H所 以 A L +07 H,使得A L能转换成相应数字的A S C H值Q Q Q:A D D A L,3 0H应数字的A S C H值M O V D I ,A L;将。1指;将口X中的内容装;即使B;比较 A L 与;若 A L 0A H,所以 A L+07 H,使得A L能转换成相应数字的A S C I I 值D D D:A D D A L,3 0H;将 A L 转换成相应数字的A S C H值MOV S I ,A L ;将 A L 中的内容

8、装入以D S中的内容为段基地址,以S I 的内容为偏移地址的存储单元中D E C S I ;S I=S I-1,即将S I 指向前一个存储单元P U S H C X;保存C X 寄存器的内容M O V C L,04 H;给 C L 寄存器赋值为()4 HS H R D X,C L M 等 D X 逻辑右移四位P O P C X ;恢复C X 寄存器的内容L O O P C C C ;循环判断语句,C X=C X-1,若C X 不等于0,则转到C C C,将下一个低四位存入存储单元中,否则循环结束M O V D X,O F F S E T B U F 2;将B U F 2 的偏移地址装入DX寄存

9、器中M O V A H,0 9 HI N T 21H ;在屏幕上显示B U F 1的反码M O V D X,O F F S E T B U F 3M O V A H,0 9 HI N T 21H ;在屏幕上显示B U F 1的补码M O V A H,4 C HI N T 2 1H ;带返回码终止C O D E E N D SENDB E G I Nc C:IIH D0ISsysteB32cBd.exe 日 回 口Copyright M icrosoft Corp 1981-1985,1987.A ll righ ts reserued.Object filenam e a.OBJ:Source

10、 lis tin g CNUL.LST:C ross-reference NUL.CRF:50672 415568 Bytes symbol space free0 Warning Errors0 Seuere ErrorsD:Xhuibianlink aM icrosoft 8086 Object Linker Uersion 3.05Copyright M icrosoft Corp 1983,1984,1985.A ll righ ts reserved.Run F ile A.EXE:L ist F ile CNUL.MAP:L ibraries .L IB:Warning:no st

11、ack segmentD:huibiana.exeECB7ECB8D h tiib ian t_Exam2:D A T A S E G M E N T;数据段A D B 3 4 H,1 8 H,2 D U P (0),量,其 后 的 每 操 作 数 都 占有一个字节B D B 5 6 H,8 3 H$;定义字节型变;定 义 字 节 型 变 量,其后的每操作数都占有一个字节D A T A E N D S;数据段结束C O D ES E G M E N T;代码段A S S U M EC S:C O D E,D S :D A T AS T A R T:M O VA X,D A T AM O VD

12、S,A X;将 数 据 段 基 地 址 装 入 数 据 段 寄 存 器D SM O VA L,A;将A所 指 的 数 装 入A L寄存器中M O VB L,B;将8所 指 的 数 装 入B L寄存器中A D DA L,B L;A L+B L-A LM O VA H,A+l;将A所指的下一个字节的数据装入A HM O V B H,B+lA D C A H,B HM O V A,A L;将B所指的下一个字节的数据装入;A H与B H进行带进位加法;将第一个无符号数的相加结果放在以A起始的缓冲区M O VA+1,A H;将第二个无符号数的相加结果放在以A+1起始的缓冲区M O VC X,0014H;

13、以下是将数据转换为相应的ASCH值M O VD IO F F S E TAM O VD X,D I A D DD I,03N E X T:M O VA X,D XA N DA X,O O O F HCMP A L,0 A HJB Q Q QA D D A L,0 7 HQ Q Q:A D D A L,3 0 HM O V D I ,A LD E C D IP U S H C XM O V C L,14S H R D X,C LP O P C XLOOP N E X TM O V D X,O F F S E T AM O V A H,09 HI N T 2 1 HM O V A H,4 C HI

14、 N T 21HC O D E E N D SE N D S T A R T;在屏幕上显示结果;带返回码终止C C:IIID 0SsysteB32cBd.exe 日 日 日M icrosoft Macro Assembler Uersion 5.00Copyright M icrosoft Corp 1981-1985,1987.A ll righ ts reserved.Object filenam e b.OBJ:Source lis tin g NUL.LST:C ross-reference CNUL.CRF:50672+415568 Bytes symbol space free0

15、Warning Errors0 Seuere ErrorsD:huibianlink bM icrosoft 8086 Object Linker Uersion 3.05Copyright M icrosoft Corp 1983,1984,1985.A ll righ ts reserued.Run F ile B.EXE:L ist F ile NUL.MAP:L ibraries .L IB:Uarning:no stack segmentD:huibianb.exe9B8AD h u ib ia n)Exam3:S T A C K S E G M E N T S T A C K;堆栈

16、段D B 100 0 D U P (0);定义其后的每个操作数都占有一个字节S T A C K E N D S ;堆栈段结束D A T A S E G M E N T ;数据段B U F D B 7 2H,3 4 H,1F H ;定义字节型变量,其后的每操作数都占有一个字节M A X D B 2 D U P (?),;定义字节型变量,其后的每操作数都占有一个字节D A T A E N D S ;数据段结束C O D E S E G M E N T ;代码段A S S U M E C S:C O D E,D S:D A T A,S S :S T A C KB E G I N:M O V A X,

17、D A T AM O V D S,A X器D SM O V A L,B U FALC M P A L,B U F+1JN B L P 1则顺序向下执行M O V A L,B U F+1A LL P 1:C M P A L,;将数据段基地址装入数据段寄存;将B U F 所指向的一个字节数据装入;比较B U F 与 B U F+1 大小;假如BUF不小于BUF+1,则转到I p l,否;将8诙+1所指向的一个字节数据装入B U F+2 JWBUFH B U F 1中较大的一个和B U F+2 比较大小JA E L P 2;假如B U F 2小,则转到l p 2,否则执行顺序向下执行M O V A

18、L,B U F+2;此时B U F 2为三个数中最大的一个,将最大数装入A L 寄存器中L P 2:M O V C X,04 H ;以下是将输出的最大数转换为相应的AS C H 值 M O V D I,O F F S E T M A XM O V D L,A LI N C D IL P 3:A N D A L,O F HC M P A L,O A HJBLP4ENDADDAL,07 HL P 4:ADDAL,3 0 HMOV D I ,A LDECDIPUSHCXMOVCL,03HSH RDL,C LPOPCXMOVA L,DLLOOPLP3MOVDX,OFF S ET MAXMOVAH,0

19、9HINT2 1 HMOVA H,4CHI NT2 1 HCODEENDSBEGIN仔,命令提示符!Microsoft Macro Assembler Uersion 5.00Copyright Microsoft Corp 1981-1985,1987.All rights reserved.Object filename a.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF1:50652+415812 Bytes symbol space free0 Warning Errors0 Seuere ErrorsD:hu ib ian 1 i

20、n k aMicrosoft 8086 Object Linker Uersion 3.05Copyright Microsoft Corp 1983,1984.1985.All rights reserued.Run File A.EXE:List File NUL.MAP:Libraries.LIB:D:huibiana.exe70D:huibian_Exam4:S T A C KS E G M E N T S T A C KD B 100 0D U P (0)S T A C KE N D SD A T AS E G M E N TB U F DB9 8 H,7 5 H,3 2HM A X

21、D B 4 D U P (?),$D A T AE N D SC O D ES E G M E N TA S S U M E C S:C O D E,D S:D A T A,S S:S T A C KB E G I N:M O V A X,D A T AM O VD S,AXM O VA L ,B U FC M P A L,B U F+1JG L P 1;J G 为比较两个有带符号数的大小,比较B U F 和 B U F 1 的大小,若B U F B U F 1,则跳转到1 p 1继续执行,否则顺序向下执行X C H G A L,B U F+1;互换 A L 寄存器中的内容和B U F 1,使

22、 A L 寄存器中存放B U F 和B U F 1 中较大的一个L P 1:M O V M A X,A LJ G E l p 2。;比较两个带符号数,假 如 B U F 2 小,则转到l p 2,否则执行顺序向下执行M O V A L,B U F+2。L p 2:M O V M A X,AL*以下是将输出的最大数转换为相应的A S C I I 值,与 1)题相同M O VC X,04 HM O VD I,O F F S E T M A XM O VD L,D I I N CD IL P 3:M O V A L,D LA N DA L,O F HC M PA L,0 A HJBL P 4A D

23、DA L,0 7 HL P 4 :A D D A L,3 O HM O V D I,A LD E CD IP U S He xMOVCL,02SHRDX,CLPOPCXLOOPLP3MOVD X,O F F SE T MAXMOVA H,0 9HIN T21HMOVAH,4CHINT21HCODEEN D SEN DBEGIN京 命令提示符-Ini xD:huibianmasn aMicrosoft Macro Assenbler Uersion 5.00Copyright Microsoft Corp 1981-1985,1987.All rights reserued.Object fil

24、ename a.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF:50652 415812 Bytes symbol space free0 Warning Errors0 Seuere ErrorsD:huibianlink aMicrosoft 8086 Object Linker Uersion 3.05Copyright Microsoft Corp 1983,1984,1985.All rights reserved.Run File A.EXE:List File NUL.MAP3:Libraries.LIB:D:huibiana

25、.exe75D:huibian_实验二循环与子程序程序设计一 实睑目的1)加深对循环结构的理解。2)掌握循环程序的设计方法。3)学习子程序的定义和调用方法。4)掌握子程序、子程序的嵌套、递归子程序的结构。5)掌握子程序设计、编制及调试。6)纯熟掌握DEBUG的常用命令,学会用DEBUG调试程序。二 实验内容1)编制程序计算S=1+2 3+3 4+4 5+.+N(N+1)+.直到N(N+1)大于200为止,并将结果由屏幕上显示出来。2)将从3 000H内存单元开始的100个字节存储单元所有清0。3)编制在屏幕上显示九九乘法表的程序。4)编制在屏幕上显示用*组成的三角形的程序。5)设有五个字数据存

26、放在以BUF为首地址的内存单元中,规定采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。6)编写一个递归子程序,计算指数函数X的值,其中X,n 从键盘输入。三 实验设备PC机一台四、实验环节1)按程序流程图编制实验程序。2)输入源程序。3)汇编、连接程序,执行程序,检查结果。4)对内存单元3 000H开始的1 0 0 个存储单元用E 命令输入任意数。5)程序的执行可用D E BUG的G 命令,也可用T 命令单步跟踪执行。6)用 D 命令检查执行结果。五、实验报告的规定1)列出源程序。2)对程序中用到的寄存器说明其功

27、能。3)总结计数控制循环程序的设计方法。4)说明如何使用DEBUG进行程序调试的。调试过程中所碰到的问题是如何解决的。、Examl:DATA SEGMENTBUF DB,S=l+2 X3+3X 4+4X5+N (N+1)+,S RES DW 4 DUP(0),芍 DATA END SC ODE SEGMENTA S SUME CS:CODE,DS:DATASTART:MOVAX,DATASHR DX,CLMOVD S,AXMOVDX,0 FFS E T BUFMOVAH,0 9HINT21HMOVDX,1MOVBL,2NEXT:MOVAL,BLI NCB LMULBLADDDX,AXCMPAX

28、,200JNANEXTMOVCX,0 0 0 4 HMOVD I,OFFS ET RESA DDDI,0 3HNEXT1:MOVAX,DXANDAX,000FHCMPA L,0 AHJBNEXT2ADDAL,0 7N E XT2:A D DAL,3 OHMOVDI,ALDECDIPUSHe xMOVCL,04PO PexLOOP NEXT1MOV DX,OFFSET R E SMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE EN DSEND START|Bv|C:TIin)OTSsyste32cd.exe 日 回QM icrosoft Macro Assemble

29、r Uersion 5.00Copyright M icrosoft Corp 1981-1985,1987.A ll rig h ts reserved.Object filenam e a.OBJ 1:Source lis tin g NUL.LST:C ross-reference NUL.CRFJ:50664+415608 Bytes symbol space free0 Warning Errors0 Seuere ErrorsC:huibianlink aM icrosoft 8086 Object Linker Uersion 3.05Copyright M icrosoft C

30、orp 1983,1984,1985.A ll righ ts reserved.Bun F ile A.EXEJ:L ist F ile NUL.MAP3:L ibraries .L IB:Uarning:no stack segmentC:huibiana.exeK=1+2*3+3*4+45+i+N+ii=045FC:huibianExam 3:D ATA SEGMENTATAD DB?,2AH,?,3 DH,?,?,2 OH,$ATAD 1 DB?,2 AH,?,3DH,?,?,ODH,0 AH,f$DATAENDSSTACKSEG MENT STA C KDB 2 OH DUP(O)S

31、TACK ENDSCODE SEGMENTA S SUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CL,09 HMOV BL,OOHOKL:MOV AL,OOHINC BLOK 1 :I NC ALPUSH AXCMP BL,ALJZ OKMOV BH,ALM ULBLMOV DI,OFFS ETATADC ALL OKPPOPAXJMP OKIOK:MOV BH,ALMUL BLMOV DI,OFFSET ATAD1CALL OKPPOP AXLOOP OK LMOV AH,4CHINT 2 1HOKPPROCPUSH AXPUSH BXP

32、USH CXADD BX,303 0 HMOV DI,BHMOVIDI+02HJ,BLMOV CX,0AHMOVDH,OOHOKL2:CMP AX,CXJS 0 K2AD D CX,OAHINCDHJMP OKL2OK2:SUB CX,OAHS UB AX,CXM OV AH,DHADD AX,3 030HMOVDI+04H,AHMOV I DI+O5HJ,A LMOV DX,DIMOV AH,09HINT 21 HPOP CXPOPBXPOP AXRETOKP ENDPCODE ENDSEND STARTC:INDOSsyst eB 32od.exeBBX0 Warning Errors0

33、Seuere Errors:huiblan 1in k alicrosoft 8086 Object Linker Uersion 3.05:opyright M icrosoft Corp 1983,1984,1985.A ll righ ts reserued.e1e1i 1iFrFatrnsbUiiA.EXE:NUL.MAP:.L IB:nuiblanza.exe2*2=042*3=062*4=082*5=102*6=122*7=142*8=162*9=183*3=093*4=123*5=153*6=183*7=213*fi=243*9=274*4=164*5=204*6=244*7=2

34、84*8=324*9=365*5=255*6=305*7=355*8=405*9=456*6=366*7=426*8=486*9=547*7=497*8=56 8*8=647*9=63 8*9=72 9*9=81Ex a m 4:CODES SEGM E NTAS S UME CS:CODESSTA R T:XORBX,BXMOV DL,2 AHMOV CX,9LO P:PU SH C XIN C BLMOV CL,BLMOV DL,2AHLOP2:MOV A H,02HINT 2 1 HLOOP LO P2POPCXMOV DL,OAHMOV AH,02HI NT 2 1HMOV DL,OD

35、HMOV AH,02HINT 2 1HCMP BL,9JZ ENDPROLOOP LOPENDPRO:MOV AH,4CHINT21HCODES ENDSE N D START C:Iin)OTSsyst e32cd.exe H E IE 30 Warn ing Errors0 Seuere ErrorsC:huibian link aM icrosoft 8086 Object Linker Uersion 3.05Copyright M icrosoft Corp 1983,1984,1985.A ll righ ts reserved.Run F ile A.EXE:L ist F il

36、e NUL.MAP:L ibraries .L IB:Warning:no stack segmentC:huibiana.exeMM-MM-M-MxxxxxjexxxxxxC:huibianE xam 5:STACK SEGMENT S T ACKDB 1 024 D UP(0)STACK END SDATA SEGMENTBUF DW OFIOIHJIODH,5 2H,1 OOH,456HCOUNT=($-B U F)/2RESULT DW 4 DUP(?):$DATA E NDSCODE S EGMENTASSUME C S:CODE,DS:DAT A,SS:STA C KWDAD D

37、PROCPUSH DIMOV A X,0MOV DX,0MOV DI,OFFSET BUFNEXT2:ADD AX,DiJ NC NEXT 1INC DXNEXT1:ADD DI,2LOOP NEXT2POP DIRETWDADD ENDPPU SH CXSHOWP ROCPU SHCXPU SHD IMOVe x,04HMOVDI,OFFSET RESULTMOVBX,AXADDD I,07HBBB:MOVAX,BXANDAX,OOOFHCMPAL,OAHJBQQQADDAL,07HQQQ:ADDAL,30 HMOVD I,ALDECDIMOV CL,04SHRBX,CLPOPC XLOOP

38、B B BMOVex,000 4 Hc c c:MOVAX,DXANDAX,OOOFHCM PAL,0 AHJB D DDADDAL,0 7HDDD:ADDAL,3 OHMO VDI,ALDECDIPUSHexMOVCL,04HSHRDX,CLPOPexLOOPCCCPOPDIPO PexRETSHOWENDPBEGIN:MOV AX,DATAMOVD S,AXMOVex,COUNTCALL WDADDCALL SHOWMOV DX,OFFSET RESULTMOV AH,0 9HINT 2 1 HMOV AH,4CHINT 21HCODE END SEND BEGIN五 C:IM D01Ss

39、yste32cBd.exeBSBC:huibiannasn aM icrosoft Macro Assembler Uersion 5.00Copyright M icrosoft Corp 1981-1985,1987.Object Filename a.OBJ:Source lis tin g NUL.LST:C ross-reference INUL.CRF:50588 415684 Bytes symbol space free0 Warning Errors0 Seuere ErrorsC:huibianlink aA ll rig h ts reserved.M icrosoft

40、8086 Object Linker Uersion 3.05Copyright M icrosoft Corp 1983,1984,1985.Run F ile A.EXE:L ist F ile ENUL.MAP:L ibraries .LIB:C:h u ib ian a.exe000107B6C:huibianA ll righ ts reserved.实验三算术运算与代码转换程序设计一、实验目的1)掌握算术运算程序的设计方法。2)掌握代码转换程序的设计方法。3)进一步掌握各种程序结构。4)纯熟掌握和使用用DEBUG调试程序。二 实睑内容1)编制两个多字节整数加法和减法程序,并将结果按

41、十六进制形式显示在屏幕上。2)编制程序实现二进制定点数与十进制数的ASCII码串之间转换,并将结果显示在屏幕上。3)编写程序计算从键盘输入两个不超过四位的十进制数的和、差、积、商,并以十进制形式输出。4)写程序把从键盘输入的四位十六进制数转换为压缩的BCD码,并显示输出。5)编写一通用过程用来将十进制数(从键盘输入)转换为P(从键盘输入)进制数。三 实验设备PC机一台四 实验环节1)按程序流程图编制实验程序。2)输入源程序。3)汇编、连接程序,执行程序,检查结果。4)程序的执行可用DEBUG的G 命令,也可用T 命令单步跟踪执行。5)用D命令检查执行结果。五、实验报告的规定1)列出源程序。2)

42、对程序中用到的寄存器说明其功能。3)总结算术运算和代码转换程序的设计方法。4)说明如何使用DEBUG进行程序调试的。调试过程中所碰到的问题是如何解决的。Eaxml:DATA SEGMENToADB 82H,34H,56H,78H,2 AH,OBCH,0 EFH,0 0 HB DB 34H,56H,78H,9 AH,0 BCH.0EFHJ6HLENB EQU$-BLEN2EQU(B-A)*2RES DB LEN2 DUP(?),DATA ENDSSTACK SEGMENT PAR A STACKD W 20D U P(?)STACK ENDSCODE SEGM ENTASSUM EDS:DATA

43、,CS:CODE,SS:STACKSTART:OM O V A X,D A T AoMOVDS,AX;多字节相加oMOV S I,0CLCoMOV CX,LENBLOP 1 :MOV AL,AISIoADC AL,BSI1oMOV AS I,ALoINC S ILOOP L OP1ADCBYTE PTR A SI,0;输出oMOV S I,0oADDSL LENBMOV DL 0MOV CX,LENB+1LOP 2:P USH CXMOV A L,A SI;高位转换oMOV BL,ALoMOV C L,4oSHR BL,CLoCMPBL,0 AHoJB NEXT1oADD BL,07HNEXT

44、1:ADD BL,30HoMOV RESD I,BLINC DI;低位转换oMOV BL,ALAND B L,0 FHCMP BL,OAHoJB NEXT2ADD B L,0 7HNEXT2:ADD B L,30HMOV R ES DI,BLINC DIoDEC SIPOP CXLOOP LOP 2MOV AH,09HoMOVDX,OFFSET RESI NT 21I IoMOVAH,4CHINT 21IICODE ENDSEND STARTc:C:WIND0SsysteB32cBd.exeBSDC:huibian nasn aM icrosoft Macro Assenblei*Uersio

45、n 5.00Copyright M icrosoft Corp 1981-1985,1987.Object filenam e a.OBJ:Source lis tin g (NUL.LST:C ross-reference NUL.CRF:50512+415760 Bytes symbol space free0 Warning Errors0 Seuere ErrorsC:h u ib ian link aA ll righ ts reserved.M icrosoft 8086 Object Linker Uersion 3.05Copyright M icrosoft Corp 198

46、3,1984,1985.Run F ile A.EXE:L ist F ile NUL.MAP:L ibraries .L IB:C:huibiana.exe0106ABE712CE8AB6C:huibianA ll righ ts reserued.Exam5:DATA SEGMENTSTRING1 DB IN PU T YOUR M=7$S TRING2 D B INPUT YOUR P=,$*RE DB 8 DUP(3 OH)D ATA ENDSSTACK 1 SEGMENT ST ACKDW 60H DUP(0)STACK1 ENDSCODE SEGMENTASSUMECS:CODE,

47、DS:DATA,S S:STAC KISTAR T:MOV AX,DATAMOV D S,AXMOV D X,OFFSET STR I NG1MOVAH,09HINT21HMOV AH,01HI NT 21HA ND AX,0000 FHMOV DL,10MUL DLMOV BX,AXMOV AH,0 IHINT 21 HANDAL,OFHCLCADD BL,ALADC BH,0MOV DL,0 A HMOV AH,02 HI NT 21HMOV DL,0D HI NT 2 1 HMOV DX,OFFSET STR I NG2MOV AH,09HINT 2 1HMOV AH,0 1 HINT2

48、1HMOV DH,ALSUB DH,30HMOV DL,0AHMOV A H,02 HINT 2 1 HMOV D L,0DHI NT 2 1 HMOV AX,BXMOV BX,00 0 1HMOV DI,OFFSE T RELOP1:DIV DHADDAH,30HMOV DI,AHCBWADD DI,BXCMPAL,0JA LOP1MOV CX,08HMOV DI,O F FSET RECLCADC DI,CXLOP2:SUB DI,BXMOV DL,D I MOV A H,0 2HINT21HLOOP LOP 2MOV AH,4CHINT 2 1HCODE ENDSEND S T ARTc

49、,C:VIND0SsysteB32cBd.exe B l回Copyright Microsoft Corp 1981-1985,1987.All rights reserved.Object filename a.OBJ:Source listing(NUL.LST:Cross-i*ef erence INUL.CRF:50626 415646 Bytes symbol space free0 Warning Errors0 Severe ErrorsC:huibianlink aMicrosoft 8086 Object Linker Uersion 3.05Copyright Micros

50、oft Corp 1983,1984,1985.All rights reserved.trnsbu.liRLLe(el1.1.IF A.EXE:NUL.MAPJ:.LIB:C:huibiana.exeINPUT YOUR M=14INPUT YOUR P=500000024实验五输入输出程序设计一、实验目的1)掌握输入输出程序的编写方法。2)熟悉系统功能调用的方法。3)熟悉动画程序的编写方法。二、实验内容1 )在C RT上每隔一秒连续显示字符0 9。编程提醒为 了 使 输 出 的 字 符 之 间 有 空 格,在 每 一 个 循 环 中 输 出 一 个09的字符和一个 空 格。为 了 输 出0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁