视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
微机原理与接口技术debug程序调试
2025-09-27 23:40:18 责编:小OO
文档
例4.1:

该程序是将十六进制数8H通过查表的方式转换为ASCII码38H。通过反汇编后可知8H存放在偏移地址为0010H中,转换后的数据38H存放在偏移地址为0011H中。调试结果如下,证明程序是正确的。

例4.2:

该程序是将12345678H与12345678H相乘得到14B66DC1DF4D840。通过反汇编得到被乘数与乘数分别存放于偏移地址为0000H和0004H起始处,结果存放于偏移地址为0008H起始处。调试结果如下,证明程序是正确的。

例4.3:

该程序是将是对X=90和Y=57进行比较得到X>Y,所以Z=1。通过反汇编得到X与Y分别存放于偏移地址为0000H和0001H处,结果Z存放于偏移地址为0002H处。调试结果如下,证明程序是正确的。

例4.4:

该程序是利用SF位来判断补码数Z=7938H是否为正数,求其绝对值。而7938H=0111 1001 0011 1000B,它是一个正数。通过反汇编得到Z存放于偏移地址为0000H处,结果送回原处依旧是7938H。调试结果如下,证明程序是正确的。

例4.5:

该程序是是将NUM1=0623AB78E390AFH和NUM2=7F367D82A9027C8BH两个8字节的无符号数相加得855A072E21E60D3A。通过反汇编得到NUM1与NUM2分别存放于偏移地址为0000H和0008H起始处,结果SUM存放于偏移地址为0010H起始处。调试结果如下,证明程序是正确的。

例4.6:

该程序是将字节变量BYTE_DATA=8FH这个数用8位二进制数显示。通过反汇编得到BYTE_DATA存放于偏移地址为0000H起始处,结果BUF=10001111B存放于偏移地址为0001H起始处,计算机的所存储的是相对应的ASCII码,并且显示器显示了10001111。调试结果如下,证明程序是正确的。

例4.7:

该程序是将长度小于等于100个由键盘输入的字符串的每一个的符号ASCII码值+2。通过反汇编得到我输入的字符串‘ABCD1234’存放于偏移地址为0002H起始处,之后加一个回车(ASCII码为0D),符串长度为H存放于偏移地址为0000H处,实际输入长度08H存放于偏移地址为0001H处。结果存放于偏移地址为0066H起始处,并且字符串的结尾加上‘$’(ASCII码为24)。调试结果如下,证明程序是正确的。

例4.8:

该程序是将从1开始到整数N求和,要求和不大于10000,并保存N。用C语言编程的该数为142。通过反汇编得到结果NUM=8EH存放于偏移地址为0000H处。调试结果如下,证明程序是正确的。

  

例4.9:

该程序是将,34,23,47,2,93,13,26,3,90这10个数按从小到大排列。通过反汇编得到这10个数存放于偏移地址为0000H起始处,结果送回原处。调试结果如下,证明程序是正确的。

  

例4.10:

该程序是统计字符串‘ASDFJKL’对应的ASCII码串中的二进制1的个数。通过反汇编得到‘ASDFJKL’存放于偏移地址为0000H起始处,CX=55表示字符总个数为56,结果NUM=21存放于偏移地址为0007H处。调试结果如下,证明程序是正确的。

  

例4.11:

该程序是将从键盘输入的十进制数(-32768—+32767)转化为二进制数。通过反汇编得到我输入的‘1234’存放于偏移地址为0002H起始处,之后加一个回车(ASCII码为0D),字符串长度为07H存放于偏移地址为0000H处,实际输入长度04H存放于偏移地址为0001H处,结果BINARY=4D2H存放于偏移地址为0009H起始处。调试结果如下,证明程序是正确的。

  

例4.12:

该程序是将ASCSTRING=‘1’,‘A’,‘6’,‘E’这四位十六进制ASCII码转换为二进制数。通过反汇编得到ASCSTRING存放于偏移地址为0000H起始处,结果放于偏移地址为0004H起始处。调试结果如下,证明程序是正确的。

例4.13:

该程序是将一个16位二进制带符号数以十进制形式输出到显示器显示。调试结果如下,结果显示Divide overflow(除法溢出)。

例4.14:

程序开始编译时出错了,经查错是LP_MUL标号后面少写了“:”。

该程序是分别对三组信息表的各自前两个数相乘(46,4和78,9和25,6),相乘结果放到第三单元中,之后乘积累加放到RESULT里。通过反汇编得到LIST1存放于偏移地址为0000H起始处,其中乘积DBH存放于偏移地址为0002H处,LIST2存放于偏移地址为0004H起始处,其中乘积2BEH存放于偏移地址为0006H起始处,LIST3存放于偏移地址为0008H处,其中乘积96H存放于偏移地址为000AH处,结果RESULT存放于偏移地址为000CH起始处,经计算RESULT本应该等于40CH,结果却显示43CH。调试结果如下,证明程序是错误的。

例4.15:

该程序是将以ARRAY为首地址的数组[25H,36H,H,20H,40H,9AH,5BH]求和。通过反汇编得到ARRAY存放于偏移地址为0000H起始处,结果RESULT=239H存放于偏移地址为0009H起始处。调试结果如下,证明程序是正确的。

例4.16:

该程序是利用递归完成一个无符号数N=7的阶乘。通过反汇编得到N存放于偏移地址为0000H处,结果FN=13B0H存放于偏移地址为0002H起始处。调试结果如下,证明程序是正确的。下载本文

显示全文
专题