微机原理与接口技术软件试验报告Word下载.docx

上传人:b****1 文档编号:837317 上传时间:2023-04-29 格式:DOCX 页数:18 大小:22.95KB
下载 相关 举报
微机原理与接口技术软件试验报告Word下载.docx_第1页
第1页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第2页
第2页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第3页
第3页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第4页
第4页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第5页
第5页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第6页
第6页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第7页
第7页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第8页
第8页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第9页
第9页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第10页
第10页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第11页
第11页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第12页
第12页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第13页
第13页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第14页
第14页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第15页
第15页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第16页
第16页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第17页
第17页 / 共18页
微机原理与接口技术软件试验报告Word下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术软件试验报告Word下载.docx

《微机原理与接口技术软件试验报告Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术软件试验报告Word下载.docx(18页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术软件试验报告Word下载.docx

DI=存放相应结果ASCII码串的首地址

例如:

若入口参数AL=93H,则子程序返回时,DS:

DI所指处将存有如下字符串:

'

-109$'

.

注:

该作业必须最迟在实验验收前一周上交.

四.实验要求

(现场演示,程序编辑除外)

1.编辑前述作业三完成的8086汇编源程序,然后进行汇编及连接以生成可执行文件.

2.执行程序,演示如下各种输入情况:

(a)被除数与除数均为正数

(b)被除数与除数均为负数

(c)被除数与除数的符号位不同

(d)输入如下特殊情况:

-128/1;

12345/11;

23/0;

1134/127;

1145/128;

32768/12345;

-32769/126.

(e)输入的除数值为:

你所在班级的最后两位数字+你在该班内的班内序号.

3.调用DEBUG软件对该可执行文件进行调试,并顺序完成如下所提要求或回答相关问题:

(a)设置相关断点,在输入完被除数并转换成等效的带符号二进制数后停下,指出所输入的被除数存放位置.

(b)设置相关断点,在输入完除数并转换成等效的带符号二进制数后停下,指出所输入的除数存放位置.

(c)设置相关断点,在执行除法运算指令IDIV之前停下,解释当前堆栈内容.

(d)输入合适的被除数与除数以便能引起0号除法溢出中断,在执行到溢出中断服务程序的第一条指令前停下,检查并解释当前堆栈内容.

DATASEGMENT

input1DB50DUP(?

input2DB50DUP(?

COUNT1DB?

;

计算被除数负号输入次数

COUNT2DB?

计算除数负号输入次数

COUNTDB?

计算/输入次数

C5DB?

5次

SUM1DW?

存放被除数的大小

SUM2DB?

存放除数的大小

cbeiDW?

被除数位数

cchuDW?

除数位数

f1DB?

bei

f2DB?

-

f3DB?

chu

YICHUDB?

溢出标志位

CZDB?

位数

SEGDATADW?

OFFDATADW?

STRING1DB'

Inputerror!

'

0DH,0AH,'

STRING2DB0DH,0AH,'

Dividedby0!

STRING3DB0DH,0AH,'

Overflow!

STRING4DB'

Pleaseinputagain!

STRING5DB0DH,0AH,'

OVER'

STRSHOWDB40DUP('

STRINDB50DUP('

STRHELPDB0DH,0AH,'

换行

STRHELP1DB'

remainder='

'

STR5DB'

Times=5'

DATAENDS

STACKSEGMENTSTACK'

STACK'

DB1000DUP(0)

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK,ES:

DATA

ORG100H

INT00PROCFAR

POPCX

ADDCX,2

PUSHCX

MOVSEGDATA,SEGSTRING3

MOVOFFDATA,OFFSETSTRING3

CALLFARPTRDISP

MOVYICHU,1

IRET

INT00ENDP

DISPPROCFAR;

显示子程序

PUSHAX

PUSHDX

PUSHDS

MOVAH,09H;

显示字符串

MOVDX,SEGDATA

MOVDS,DX

MOVDX,OFFDATA

INT21H

POPDS

POPDX

POPAX

RET

DISPENDP

SHOWPROCFAR

MOVCZ,0

MOVDI,OFFSETSTRSHOW

CMPAL,0

BJ1:

JSBJ3

JNSBJ4

BJ3:

JNOFU;

最高位是1,次高位是1

JOZHENG;

最高位是1,次高位是0

BJ4:

JOFU;

最高位是0,次高位是1

JMPZHENG;

最高位是0,次高位是0

FU:

NEGAL;

负数的绝对值

MOVDL,2DH;

-号

MOV[DI],DL

INCDI

ZHENG:

MOVAH,0

MOVBL,0AH

DIVBL;

AL...AH

MOVDH,AH

MOVDL,0

ADDDH,30H

INCCZ

CMPAL,0;

若商为不零,继续重复

JNZZHENG

MOVCL,CZ

MOVCH,0

LOOP10:

MOV[DI],DH

LOOPLOOP10

MOVDL,24H

SHOWENDP

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVC5,5H

LOOPA:

MOVCOUNT1,1

MOVCOUNT2,1

MOVCOUNT,1

MOVSUM1,0

MOVSUM2,0

MOVf1,1;

MOVf2,1;

MOVf3,1;

MOVSI,OFFSETinput1

MOVDI,OFFSETinput2

MOVcbei,0

MOVcchu,0

MOVYICHU,0

MOVBX,OFFSETSTRIN

INPUT:

MOVAH,1

CMPAL,1BH;

检测是否按下ESC退出键

JNZA1

JMPOUTALL2

A1:

CMPAL,2DH;

若不是-号,跳到A

JNZA

-号的处理

CMPf1,1

JZG

CMPf2,0

JZD

E:

MOVSEGDATA,SEGSTRHELP

MOVOFFDATA,OFFSETSTRHELP

CALLDISP

MOVSEGDATA,SEGSTRING1

MOVOFFDATA,OFFSETSTRING1

CALLDISP

MOVSEGDATA,SEGSTRING4

MOVOFFDATA,OFFSETSTRING4

JMPSTART

G:

CMPCOUNT1,1;

被除数是否只有一个-

JNZE

DECCOUNT1

MOV[BX],AL

INCBX

JMPINPUT

D:

CMPf3,1

CMPCOUNT2,1;

000

DECCOUNT2

E3:

JMPE

A:

CMPAL,2FH;

若不是/号,跳到B

JNZB

/的处理

CMPf1,0

JNZE3

CMPf2,1

CMPCOUNT,1

DECCOUNT

DECf2

MOV[BX],AL

INCBX

B:

CMPAL,0DH;

若不是回车,跳到F

JNZF

回车的处理

CMPf1,0

JNZE2

CMPf2,0

CMPf3,0

MOVDL,3DH;

=号

MOV[BX],DL

INCBX

MOVDL,24H;

$

JMPOUT1

F:

CMPAL,30H;

判断输入的是不是数字

JLE2

CMPAL,39H

JGE2

JNZchushu

beichu:

MOVf1,0

MOV[SI],AL

INCSI

MOV[BX],AL;

INCcbei

chushu:

MOVf3,0

MOV[DI],AL

INCcchu

JMPINPUT

JMPOUT1

E2:

JMPE3

OUT1:

CMPcbei,5

JLI;

被除数小于5位,在合理范围内,跳到I

H:

MOVSI,OFFSETinput1;

输入的被除数是5位

MOVAL,[SI]

SUBAL,30H

CMPAL,3;

判断5位被除数是否超出范围

JLI

MOVAL,[SI+1]

SUBAL,30H

CMPAL,2

MOVAL,[SI+2]

CMPAL,7

MOVAL,[SI+3]

CMPAL,6

MOVAL,[SI+4]

JLEI

CMPAL,8

CMPCOUNT1,0

I:

CMPcchu,3

JGE1

JLJ;

除数小于3位,在合理范围内,跳到J

MOVDI,OFFSETinput2;

输入的除数是3位

MOVAL,[DI]

CMPAL,1;

判断3位除数是否超出范围

JLJ

MOVAL,[DI+1]

CMPAL,2

MOVAL,[DI+2]

JLEJ

CMPCOUNT2,0

JNZE1

JZJ

E1:

JMPE2

J:

MOVCX,cbei

LOOP1:

MOVBL,[SI];

求出输入被除数的值

SUBBL,30H

MOVBH,0

MOVAX,SUM1

MOVCL,3

SHLAX,CL

SHLSUM1,1

ADDSUM1,AX

ADDSUM1,BX

LOOPLOOP1

CMPSUM1,0

JZOUT0

MOVCX,cchu

MOVDI,OFFSETinput2

LOOP2:

MOVBL,[DI];

求出输入除数的值

MOVAH,SUM2

SHLAH,CL

SHLSUM2,1

ADDSUM2,AH

ADDSUM2,BL

LOOPLOOP2

CMPSUM2,0;

除数为零时,显示“Dividedby0!

JZOUT0

JMPOUTDOS

OUT0:

MOVSEGDATA,SEGSTRING2

MOVOFFDATA,OFFSETSTRING2

JMPOUTALL

OUTDOS:

CMPCOUNT1,0

JNZK;

被除数为正数

NEGSUM1;

被除数为负数,求补

K:

JNZL;

除数为正数

NEGSUM2;

除数为负数,求补

L:

STI;

允许中断

MOVAL,0

MOVAH,35H

PUSHES

PUSHBX

MOVAX,SEGINT00

MOVDX,OFFSETINT00

MOVAH,25H

MOVAX,SUM1;

计算出商和余数

MOVBL,SUM2

IDIVBL;

AL?

?

AH

MOVDS,CX

CMPYICHU,1

JZOUTALL1

MOVSEGDATA,SEGSTRIN

MOVOFFDATA,OFFSETSTRIN

PUSHAX;

显示商

CALLSHOW

POPAX

MOVSEGDATA,SEGSTRSHOW

MOVOFFDATA,OFFSETSTRSHOW

MOVSEGDATA,SEGSTRHELP1

MOVOFFDATA,OFFSETSTRHELP1

MOVAL,AH;

显示余数

JMPY

OUTALL1:

JMPOUTALL

Y:

CALLDISP

CMPSUM2,32H;

若输入的除数为50,则返回DOS

JZOUTALL

DECC5

CMPC5,0

JZT5

JMPLOOPA

T5:

MOVSEGDATA,SEGSTR5

MOVOFFDATA,OFFSETSTR5

JMPOUTALL

OUTALL2:

MOVSEGDATA,SEGSTRING5

MOVOFFDATA,OFFSETSTRING5

OUTALL:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2