《计算机原理》(自学推荐)习题4含答案.docVIP

《计算机原理》(自学推荐)习题4含答案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机原理》(自学推荐)习题4含答案

习题: ‘Hello ’, 0 ORG 200H str2 db ‘Automation!’, 0 程序运行后结果应为: str1 db 0dh, 0ah, ‘Hello Automation!’, 0 以10进制形式显示内存中一有符号字节数据 例:var db 0ffH 屏幕应显示:The result is: -1 将一个16位的无符号数var, 转换为非压缩格式BCD码,存放在内存中buf开始的单元中。(按高位在前、低位在后的顺序存放) 选作题: 内存中从str开始存放一字符串,结束符为NULL字符,请编写程序统计该字符串中单词的个数 例:str1 db 0dh, 0ah, ‘Hello world, welcome to DUT. CPU is central processing unit!’, 0h 统计’….’中的单词个数,结果为10 编写程序用键盘1~7键,模拟7个音符,进行键盘演奏! 注:需要对8253的定时器2和8255的PB口进行初始化 习题4答案: 从屏幕上输入小写字母,转换为大写字母并输出 要求:程序具有可读性、容错性 data segment para str1 db 0dh, 0ah, ‘Please input(a-z): $’ str2 db 0dh, 0ah, ‘The input is error!$’ str3 db 0dh, 0ah, ‘The result is: $’ data ends ss_seg segment stack dw 100 dup(0) ss_seg ends code segment para assume cs:code, ss:ss_seg, ds:data main proc far mov ax, data mov ds, ax main1: lea dx, str1 ;显示提示信息 mov ah, 9 int 21h mov ah, 1 ;输入小写字母 int 21h cmp al, ‘a’ ;判断输入字符是否为’a’~’z’ jb error cmp al, ‘z’ ja error jmp next error: lea dx, str2 ;显示错误提示信息 mov ah, 9 int 21h jmp main1 ;跳转,重新输入 next: sub al, 20h push ax lea dx, str3 ;显示输出提示信息 mov ah, 9 int 21h pop ax mov dl, al ;显示转换后的大写字母 mov ah, 2 int 21h mov ax, 4c00h ;返回操作系统 int 21h main endp code ends end main 编写一子程序asc2bin,将ASCII转换为二进制数 要求: 输入参数:AL中存放需要转换的ASCII 输出参数:AL中存放转换后的二进制数并返回 ;功能:将ASCII转换为二进制数 ;输入参数:AL中存放需要转换的ASCII ;输出参数:AL中存放转换后得到的二进制数 asc2bin proc sub al, 30h cmp al, 9 jbe asc2bin_1 sub al, 7 asc2bin_1: ret asc2bin endp 内存中存放8个16位有符号数,求8个数值之和,并将结果存放在内存变量SUM中 注:程序中应用到字扩展为双字的指令CWD data segment para buf dw -1, 30000, 35000, 36000, 37000, 20000, 10000, -2 sum dd 0 data ends ss_seg segment stack dw 100 dup(0) ss_seg ends code segment para assume cs:code, ds:data, ss:ss_seg main proc far mov ax, data mov ds, ax lea bx, buf ;bx指向buf首地址 mov cx, 8 main1: mov ax, [bx] cwd ;有符号数字扩展为双字 add word ptr sum, ax ;32位数相加 adc word ptr sum + 2, dx inc bx inc bx loop main1 ;循环8次 mov ax, 4c00

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档