2023年河北工业大学汇编实验报告.docx
《2023年河北工业大学汇编实验报告.docx》由会员分享,可在线阅读,更多相关《2023年河北工业大学汇编实验报告.docx(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编实验实验一顺序与分支程序设计-、实验目的I)掌握顺序程序设计方法。2)掌握分支程序的结构及分支程序的设计,调试方法。2)学习数据传送及算术和逻辑运算指令的用法。3)熟悉在PC机上建立、汇编、连接、调试和运营汇编语言程序的过程。二、实验内容1)有一字变量BUF1是以原码表达的有符号数,规定将其转换为反码和补 码,分别存入BUF 2和BUF3单元,并在屏幕上显示出来。2)有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其 和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。3)在BUF和BUF+1、BUF+2单元分别放有一个无符号字节型数,编程序将 其中最大数存入
2、MAX单元,并在屏幕上显示。M)规定同上,只是比较的数为有符号数。5)将1()()()H单元开始的1()个字节数,采用奇偶校验,将奇数在前偶数在后仍存回原数据区。本实验规定在DEBUG调试状态下进行,涉及汇编程序、运营 程序、检查结果。I NT2 1 IIMOV AH, 4CHI NT21HCODE ENDSEND START;在屏幕上显示结果;带返回码终止a C:fINDOfSsysteM32cBd.exe Macro Assembler Uersion 5.00 Microsoft Corp 1981-1985, 1987. All rights reserved.Object Filen
3、ame (b.OBJJ:Source listing CNUL.LST:Cross-reference NUL.CRF: 50672 + 415568 Bytes symbol space free0 Warning Errors0 Severe Errors:huibianlink bMicrosoft 8086 Object Linker Uersion 3.05 Copyright Microsoft Corp 1983, 1984, 1985. All rights reserved.Run File B.EXE:List File NUL.MAPJ:Libraries .LIB:Wa
4、rning: no stack segmentD:huibianb.exe9B8AD:huibianE xatn3:STACK SEGMENT STACKDB 100 0 DUP ( 0 )S TACK EN DSDATA SEGMENTBUF DB 72H, 34H, 1FH操作数都占有一个字节MAX DB 2 DUP (?),;堆栈段;定义其后的每个操作数都占有一个字节;堆栈段结束;数据段;定义字节型变量,其后的每;定义字节型变量,其后的每操作数都占有一个字节;数据段结束D ATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, S S :ST ACK
5、BEG I N: MOV AX, DATAMOV DS, AX器DSMOV AL, BUFALCMP AL, BUF+1JNB LP1则顺序向下执行MOV AL, BUF+1ALLP 1 :CMP AL,;将数据段基地址装入数据段寄存;将BUF所指向的一个字节数据装入;比较BUF与BUF+1大小;假如BUF不小于BUF+1,则转到Ipl,否;将BUF+ 1所指向的一个字节数据装入BUF+2;将81下和 BUF1中较大的一个和BUF+ 2比较大小JAE LP 2;假如BUF 2小,则转到lp2,否则执行顺序向下执行MOVAL,BUF+2;此时BUF2为三个数中最大的一个,将最大数装入AL寄存器中
6、LP2:MOV CX,04H;以下是将输出的最大数转换为相应的ASC II 值 MOV DI, OFFSET MAXMOV DL, ALI NC D IL P3:AND AL, OFHCMP AL, OAHJBLP4ENDADDAL,07 HLP4:ADDAL, 30HMOVDI,A LDECDTPUSHCXMOVCL,03HSHRDL,CLPOPCXMOVAL,DLLOOPLP3MOVDX,OFF S ET MAXMOVAll,0 911INT21 HMOVAH,4CHI NT2 1 HCODEENDSBEGIN京命令提示符-Ini xiMicrosoft Macro Assembler U
7、ersion 5.00 Copyright Microsoft Corp 1981-1985, 1987. All rights reserued.Object Filename Ca.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, 19
8、84, 1985. fill rights reserued.Run File A.EXE:List File NUL.MAPJ:Libraries .LIB::0 D7Dhuibiana.exe huibian.Exam4:STACK SEGMENT STACKDB 100 0DUP (0)STAC K ENDSDATASEGMENTBUF DB98H,75H,32HMAXDB 4 DUP (?), $DATAENDSCODES EGMENTASSUME CS:CODE, DS:DATA, SS: STACKBEGIN: MOVAX, DATAMOVDS, A XMOVMOVAL,BUFCM
9、PAL, BUF+1J GLP1; J G为比较两个有带符号数的大小,比较BUF和BUF1的大小,若BUFBUF 1,则跳转到1 p 1继续执行, 否则顺序向下执行XCHGAL,BU F+1;互换 AL 寄存器中的内容和BUF 1,使AL寄存器中存放BUF和B UF1中较大的一个LP1:MOVMAX,ALJG E lp2o;比较两个带符号数,假如BUF 2小,则转到lp2,否则执行顺序向下执行MO V AL, BUF+2。Lp2: MOV MAX, AL”;以下是将输出的最大数转换为相应的ASC I I值,与1)题相同MOVex,04HMOVDI,OFFSETMAXMO VDL,DIINCDI
10、LP3:MOVAL,DLANDAL,OFHCMPAL,0 AHJBLP4ADDAL,0 7 HLP4 :ADD AL,3 OHMO VDI,ALDECDIPUSHexMOVCL, 02SHRDX,CLPOPCXLOOPLP3MOVDX,OFFSETMAXMOVAH,0 9HINT21HMOVAH, 4CHINT21HCODEENDSEN DBEGIND:huibiannasm aMicrosoft Macro Assembler Uersion 5.00Copyright Microsoft Corp 1981-1985, 198?. All rights reserved.Object fi
11、lename 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.MAP:Libraries .LIBI:D:
12、huibiana.exe 75D:huibian实验二循环与子程序程序设计一、实验目的1 )加深对循环结构的理解。2)掌握循环程序的设计方法。3)学习子程序的定义和调用方法。4 )掌握子程序、子程序的嵌套、递归子程序的结构。5)掌握子程序设计、编制及调试。6 )纯熟掌握DEBUG的常用命令,学会用DEBUG调试程序。二、实验内容1)编制程序计算S = 1 +2 3+34+45+N (N+ 1 )+ 直到N (N+1)大200为止,并将结果由屏幕上显示出来。2)将从3 000H内存单元开始的100个字节存储单元所有清0。3)编制在屏幕上显示九九乘法表的程序。4)编制在屏幕上显示用*组成的三角形的
13、程序。5)设有五个字数据存放在以BUF为首地址的内存单元中,规定采用调用多个 字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在 RESULT+2单元,并将结果显示在屏幕上。6 )编写一个递归子程序,计算指数函数X的值,其中X, n从键盘输入。三、实验设备PC机一台四、实验环节1)按程序流程图编制实验程序。2)输入源程序。3)汇编、连接程序,执行程序,检查结果。4 )对内存单元3 000H开始的1 0 ()个存储单元用E命令输入任意数。5 )程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。6)用D命令检查执行结果。五、实验报告的规定1)列出源程序。2)对程序
14、中用到的寄存器说明其功能。3)总结计数控制循环程序的设计方法。网)说明如何使用DEBUG进行程序调试的。调试过程中所碰到的问题是如何 解决的。、Examl:DATASEGMEN TBUF DB,S=l+2 X3+3X 4+4X5+-+N (N+ 1 ) +-=RES DW 4 DUP (0),芍DMA END SC ODE SEGMENTA S SUME CS: CODE.DS:DATASTART: MOVAX, DATAMOV DSMOVMOV AH,INT 2IHMOVDX,MOVBL,NEXT:MOVAL,I NCB LAXO FFSET BUF0 9H12BLMULADDCMPJNAM
15、OVMOVA DDNEXT1: MOVANDCMPJBADDN EXT2:ADDMOVDECPUSHMOVBLDX. AXAX, 200NEXTCX, 0 0 0 4 HD I , OFFS ET RESDI, 0 3HAX, DXAX, 000FHAL, 0 AHNEXT2AL, 0 7AL, 3 0 HDI, ALDICXCL, 04SHR DX.CLPO P exLOOP NEXT1MOV DX,OFFSET RESMOV AH, 09HINT 21HMOV AH,4CHINT 21HCODE EN DSEND START/ C: fIHDOISsyst ea32cad. exe日日QM
16、icrosoft Macro Assembler Version 5.00 Copyright Microsoft Corp 1981-1985, 1987. All rights reserved.Object ilenane (a.OBJ:Source listing NUL.LST: Cross-reference (NUL.CRF:50664 + 415608 Bytes synbol space free0 Warning Errors 0 Seuere ErrorsC:huibianlink aMicrosoft 8086 Object Linker Uersion 3.05Cop
17、yright Microsoft Corp 1983, 1984, 1985. All rights reserved.Run File A.EXE:List File NUL.MAPJ:Libraries .LIB:Warning: no stack segmentC:huibiana.exe 3=1+2*3+3*4+4*5+14+N+ii=045F C:huibianExam 3 :D ATA SEGMENTATAD DB?, 2AH, ? ,3 DH, ?, ?, 2 OH, $ATAD 1 DB ?, 2 AH, ?,3DH,?,?, ODH, 0 AH, z $DATA ENDSST
18、A CK SEGMENT STACKDB 2 OH DUP(0)6 )从键盘上接受一位十进制数X,计算Y值,并以十六进制形式显示出来,Y按下列公式计算。X2 + XQX = 3)X2 -2X(X = 4)X2(X = 5)X2 /2(X = 6)7)从键盘上接受两个一位十六进制数X和Y,然后再输入一个A-D之间的 一个字符,按下列规定计算。a)当输入字符为A,则计算X+Y,并以十六进制形式显示出来b)当输入字符为B,则计算| X-Y|,并以十六进制形式显示出来 c)当输入字符为C,则计算X*Y,并以十六进制形式显示出来 d)当输入字符为D,则计算X/Y,并以十六进制形式显示出来三、实验设备PC
19、机一台四、实验准备1)分析题目,将程序中的原始数据和最终结果的存取方法拟定好。2)画出流程图。3)写出源程序。4)对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试 的过程。五、实验环节STACK ENDSCODE SEGMEN TA S SUME C S :COD E, DS:DATASTART:MOVAX, DATAMOV DS, AXMOV CL, 09 HMOV BL, OOHOKL:MOV AL, OOHINC BLOK 1 :I NCALP USH A XCMP BL, ALJZ OKMOV BH, ALMULBLMOV DI, OFFS ETATADC ALL OKP
20、POPAXJMP OKIOK:MOV BH, ALMUL BLMOV DI, OFFSET ATADICALL OKPPOP AXLOOP OKLMOV AH, 4CHINT 2 1HOKPPROCPUSH AXPUSH BXPUSH CXADD BX, 303 OHMOV DI, BHMOVDI + 02H, BLMOV CX,0AHMOVDH, OOHOKL2:CMP AX, CXJS O K2ADD CX, OAHINCDHJMPOKL2OK2:SUB CX, OAHS UB AX, CXMOV AH, DHADD AX, 3 030HMOVDI + 04H , AHMOVDI+ 05H
21、,ALMOV DX, DIMOV AH, 09HINT 2 1 HPOP CXPOPBXPOP AXRETOKP ENDPCODE ENDSEND STARTBSD| 衣 C:WINDOSsystea32cMd. exe0 Warning Errors0 Severe ErrorsC:huibianlink aMicrosoft 8086 Object Linker Uersion 3.05Copyright Microsoft Corp 1983, 1984, 1985. All rights reserved.Run File A.EXE:List File (NUL.MAP1:Libra
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 河北 工业大学 汇编 实验 报告
限制150内