还剩4页未读,继续阅读
文本内容:
微机原理上机实验报告姓名孙叠学号请完成课件”第四章汇编语言程序设计第页例子上机实验调试_2“4412121700已知数据段和堆栈段的定义如下DATA SEGMENT;定义数组D1DB-1,-3,5,6,-9数组元素个数COUNT EQU$-D1;;存放负数个数RS DWDATA ENDSSTACK SEGMENT PARA STACK STACKDB256dup STACKENDS请写出统计数据块中负数个数的程序并写出使用和生成和调试D1count.asm,masm,link debugcount.exe的过程注本题的流程图请画在纸上,需要交纸质报告答案实验步骤任选熟悉的编辑环境,输入示例程序,取名为1count.asm利用进行汇编,2:MASM用连接程序对生成的文件进行连接3:EX.OBJ在下加载文件
4.debug EX.EXE在下调试、执行文件
5.debug程序流程图:0-DXOffset dl-bx[bx]-ALINC DX程序代码DATA SEGMENTD1DB-1,-3,5,6,-9COUNT EQU$-D1RS DWDATAENDSSTACKSEGMENTPARASTACKSTACK⑺DB256dupSTACK ENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACKBEGIN:MOV AX,DATAMOV DS,AXMOV BX,OFFSET D1MOV CX,COUNTMOV DX,0LOP1:MOV AL,[BX]CMP AL,0JGEJUSINC DXJUS:INC BXLOOPLOP1MOV RS,DXMOV AH,4CHINT21HCODE ENDSENDBEGIN调试步骤C:\DOCUME〜1\USERe:E:\cd\masmE:\masmnotepad count.asmE:\masmmasm countMicrosoftR MacroAssembler Version
5.00Copyright CMicrosoft Corp1981-1985,
1987.All rightsreserved.Object filename[count.OBJ]:Source listing[NUL.LST]:Cross-reference[NUL.CRF]:48738+394222Bytes symbolspace free0Warning Errors1610:0000B80F16MOV AX,160F0Severe Errors1610:00038ED8MOV DS,AX MOV1610:0005BB0000BX,0000MOV1610:0008B90500CX,00051610:000B BA0000MOV DX,00001610:000E8A07MOV AL,[BX]1610:00103000CMP AL,00JGE1610:00127D010015INC DXINC BX1610:0014421610:0015431610:0016E2F6LOOP000E1610:001889160500MOV
[0005],DX1610:001C B44C MOVAH,4C1610:001E CD21INT21AX=0000BX=0000CX=0030DX=0000SP=0100BP=0000SI=0000DI=0000DS=15FF ES=15FF SS=1612CS=1610IP=0000NV UP El PL NZ NA PO NC1610:0000B80F16MOV AX,160FAX=160F BX=0000CX=0030DX=0000SP=0100BP=0000SI=0000DI=0000DS=15FF ES=15FF SS=1612CS=1610IP=0003NV UP El PL NZ NA PO NC1610:00038ED8MOV DS,AX-PAX=160F BX=0000CX=0030DX=0000SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=0005NV UP El PL NZ NAPO NC1610:0005BB0000MOV BX,0000-PAX=160F BX=0000CX=0030DX=0000SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=0008NV UP El PL NZ NAPO NC1610:0008B90500MOV CX,0005■PAX=160F BX=0000CX=0005DX=0000SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=000B NV UPEl PLNZ NAPO NC1610:000B BA0000MOV DX,0000AX=160F BX=0000CX=0005DX=0000SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FF SS=1612CS=1610IP=000E NV UPEl PLNZ NAPO NC1610:000E8A07MOV AL,[BX]DS:0000=FF-PAX=16FF BX=OOOO CX=0005DX=OOOO SP=0100BP=OOOO SI=OOOO DI=OOOO DS=160FES=15FF SS=1612CS=1610IP=0010NV UPEl PLNZ NAPO NC1610:00103C00CMP AL,00-PAX=16FF BX=0000CX=0005DX=0000SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=0012NV UPEl NGNZ NA PE NC1610:00127D01JGE0015-PAX=16FF BX=0000CX=0005DX=0000SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=0014NV UPEl NGNZ NAPE NC1610:001442INC DX-PAX=16FF BX=0000CX=0005DX=0001SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=0015NV UPEl PLNZ NAPONC1610:001543INC BX-PAX=16FF BX=0001CX=0005DX=0001SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=0016NVUPElPLNZNAPONC1610:0016E2F6LOOP000E-PAX=16F7BX=0005CX=0000DX=0003SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=0018NVUPElPLNZNAPE NC1610:001889160500MOV
[0005],DX DS:0005=0000-PAX=16F7BX=0005CX=0000DX=0003SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=001C NVUPElPLNZNAPENC1610:001C B44C MOVAH,4C-PAX=4CF7BX=0005CX=0000DX=0003SP=0100BP=0000SI=0000DI=0000DS=160F ES=15FFSS=1612CS=1610IP=001E NVUPElPLNZNAPE NC1610:001ECD21INT21-PProgram terminatednormally在书写程序段时一定要注意该固定部分的书写形式,同时要注重格式的书写在编译链接过程中文件的后缀不能输在分支程序的编写过程中,最重要的是判断指令的选择和各部分程序段的逻辑顺序,其次是各种指令以及寻址方式的熟练运用这次实验反应出的问题有程序分支后不能汇合到应在的点,主要是因为考虑不周;还有由于自己的不经意,写错指令导致程序不能正常运行;此外,本次上机还让我体会到了程序验证的重要性,。
个人认证
优秀文档
获得点赞 0