- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理实验3汇编语言程序设计.
微机原理实验3
实验设备:LAB6000通用微控制器实验系统
实验用时10小时
一、实验内容:汇编语言程序设计 。在了解8086/8088汇编语言后,编制并调试程序。
编制不恢复余数除法程序 格式:最高两位为符号位
按IEEE754格式编制32位浮点数与32位定点数相互转换程序子程序(两个子程序)
编制程序寻找100以内的质数,并从小到大排列。
4、 编制8位(4字节)压缩BCD码加、减法程序。
5、 编制8位(8字节)非压缩BCD码乘法和除法程序。
二、实验报告:程序框图和源程序清单。
第一题必做,其余任选两个
第一题:
这道题可以按照老师所讲的不恢复余数除法的步骤,一步一步把书上的文字描述“翻译”成汇编语言。
1、执行第一次减法。
2、判断结果的正负,这里我们通过比较结果与0100h的大小关系来实现,结果大于等于0100h,说明结果小于0;结果小于0100h,说明结果大于0,最终会溢出,程序结束
3、如果上一次操作结果为正,则商1,被除数左移一位,减除数,跳转5
4、如果上一次操作结果为负,则商0,被除数左移一位,加除数,跳转5
5、判断上一次操作结果的正负
6、上面的第3,4,5步循环4次之后结束,如果最后一次操作结果小于0,则还要再左移一位,加除数。
这样就实现了8位除以4位的不恢复余数除法。
这道题的难点在于正确理解不恢复余数除法的步骤,和每一步的意义。因为单纯翻译书上的内容很容易导致误解,只有真正理解了才能做出来。这里比对一下自己最后梳理出来的1~6步,就会发现与书上所说的1~6步稍有不同,但是也是正确的。
程序流程图如下:
程序代码:
data segment
Result db 3 dup(?)
x2 dw 0021h
y2 dw 0040h
count db 0
sign dw 0h
data ends
;al保存被除数,bx第4~8位保存除数,ah,bh保存符号,即被除数为负,则ah=ffh,否则为0
;ax的第4~8位保存余数,dx的低4位保存商
code segment
assume cs:code, ds:data
start proc near
mov ax, data
mov ds, ax
mov ax, x2
mov bx, y2
mov cx, 4
sub ax, bx
cmp ax, 0100h
jb jieshu
mov dx, 0 ;第一次为负
;shl ax, 1
shl ax, 1
add ax, bx
bijiao:
cmp ax, 0100h
jb zheng;为正,跳转减法
;否则为负,执行加法
mov sign, 1
shl dx, 1;商0
add count, 1
cmp count, 4
jnb jieshu
shl ax, 1
add ax, bx
jmp bijiao;进行下一次比较
zheng:
mov sign, 0
shl dx, 1
add dx, 1
add count, 1
cmp count, 4
jnb jieshu
shl ax, 1
sub ax, bx
jmp bijiao
jieshu:
cmp ax, 0100h
jb endss
add ax, bx
endss:
jmp $
code ends
end start
第二题:
这道题的思路可以很快梳理清楚:
浮点数转定点数:①确定符号,符号存入内存最高位,负数要取补②确定阶码③根据阶码值取相应数量的数构成整数部分(不要忘了浮点数中忽略了的最高位1)④剩余的部分是小数部分
定点数转浮点数:①确定符号,存入内存最高位,负数要取补②确定阶码③忽略整数部分最高位1,其余部分存入内存④小数部分存入内存
思路即是这样。
难点在于处理的数据位数太多,超出了板子一次运算允许的最
文档评论(0)