ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:494.29KB ,
资源ID:15324106      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15324106.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理实验1文档格式.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理实验1文档格式.docx

1、定义数据段buf db 256 dup (?count equ $-buf ;将buf定义的字节长度赋值给countdata endscode segment ;定义代码段 assume ds:data,cs:codestart: mov ax,data mov ds,ax mov si,offset buf ;设置数据块首地址 mov cx,count ;设定循环次数 cld ;地址修改为增量 xor ax,ax xor dx,dx xor bx,bxhyone: mov si,al ;将数据存入数据段 inc si inc al loop hyone指向数据块首地址 mov cx,coun

2、t-1hytwo: mov dl,si ;显示数据段的内容 mov ah,2 int 21h mov dl,20h ;插入空格 mov ah,2 int 21h inc si inc bl ;设定为换行指示标志 cmp bl,10h ;当显示了16个字符之后就换行 jz hythree loop hytwo;回车换行hythree: mov dl,0dh mov ah,02h int 21h mov dl,0ah int 21h xor bl,bl ;将换行指示标志重新置为0 cmp cx,0 ;判断是否显示完 jnz hytwo ;没有显示完的话继续显示 jz hyfour ;显示完结束程序

3、hyfour: mov ah,4ch ;终止程序 int 21hcode ends end start (2)程序流程图: 图12. 写入数据,统计各类元素个数data segment ;org 100h ;设定初始偏移量为100hbuf db 259 dup(?) ;定义259个数据存放地址count equ $-buf ;hy db 0 ;定义变量hy作为空格显示控制标志data ends assume cs:code,ds:data mov ax,data mov ds,ax mov si,offset buf ; mov cx,count-3 ;将循环次数存入cx中 cld ; xor

4、 bx,bx xor ax,ax xor dx,dx movsi,al ; inc si inc al loop hyone mov si,offset buf ; mov cx,count-3 ; lodsb ;把si指向的存储单元读入累加器 mov al,si and al,al jz zero ;如果为0的话则跳转到zero jns positive ;如果大于0的话则跳转到positive js negtive ;如果小于0的话则跳转到negtivezero: inc bl ;统计为0的个数,用bl计数 jmp hythreepositive: inc bh ;统计大于0的个数,用bh

5、计数 jmp hythree negtive: inc dl ;统计小于0的个数,用dl计数 inc si ;si加一 loop hytwo ;继续判断下一个数 dec si ;先执行后判断所以si要减1将0的个数存入数据块之后的第一个单元 mov si,bl inc si ;将大于0的个数存入数据块之后的第二个单元 mov si,bh ;将小于0的个数存入数据块之后的第三个单元 mov si,dl mov cx,count ;设置循环次数done: mov al,si ;将数据段的内容赋值给al mov bh,al ;暂存数据右移4位 shr al,1 call disp mov al,bh

6、 ;将暂存的数据送回al and al,0fh ;屏蔽掉高四位 call disp inc si loop done mov ah,4ch ; int 21hdisp proc cmp al,0ah ;与0ah比较,小于0ah,加30h js hyfive ;大于0ah,为十六进制数AF,加37h add al,7 hyfive: add al,30h mov dl,al ;dos功能调用显示字符 mov ah,02 inc hy cmp hy,02 jz hyseven ret根据空格显示标志符hy的大小判断是否插入空格hyseven: mov dl,20h ; mov ah,2 inc d

7、h mov hy,0 cmp dh,10h jz hysix rethysix: mov dl,0dh ; xor dh,dh ret disp endpcode ends end start(2)程序流程图图2 3. 十六进制数转换成十进制数 (1) 源程序(附注释):name hexdeccode segment assume cs:提示信息msg1 db erro number,$msg2 db Hello! Please input the hexadecimal number:msg3 db To exit this program,you only have six chances

8、msg4 db number overflowhy db 0count db 0crlf macro ;定义宏指令,回车换行 mov dl,0dh mov ah,02h mov dl,0ah endm mov ax,seg code mov ds,ax ;给数据段赋值,与代码段在同一个段提示正确调试的机会只有6次begin: crlf mov dx,offset msg3 mov ah,09 crlfmain: mov dx,offset msg2 ;提示输入一个十六进制的数 mov ah,09 call hexbin ;从键盘接收进制的数并转化为二进制 call bindec ;把二进制转化

9、为十进制数 mov hy,0 ;重置输入次数标志 inc count ;正确调试次数加1 cmp count,6 ;如果已经正确调试六次则退出程序 jz done jmp main mov ah,4ch ;退出程序接收键盘输入的十六进制数据,并转化为二进制子程序hexbin proc near xor bx,bxnewchar: mov ah,01 cmp al,0dh ;若输入回车则结束本程序 jz retu统计输入的十六进制数长度,如果大于ffffh则溢出报错 inc hy cmp hy,5 jz bck ;溢出报错 sub al,30h jl exit ;键入的字符小于0,为非法字符 c

10、mp al,9 jle addto ;键入的字符大于0,小于9,移位处理 sub al,07 ;判断是否为字母AF cmp al,0ah ;不是大于A的字母为非法字母 jl exit cmp al,0fh ;判断是否为af jg nextaddto: mov cl,4 shl bx,cl ;键入的字符左移四位,先键入的字符移向高位 mov ah,0 add bx,ax ;把刚键入的字符与前面的字符和在一起 jmp newcharbck: mov hy,0 crlf mov dx,offset msg4 crlf jmp mainnext: sub al,20h ;判断是否为小写af cmp al,0ah小于a为非法字符大于f为非法字符 jle addto jg exit jmp returetu: ret输入

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1