- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 《国家特殊(专管)药品管理要求》课件.pptx VIP
- 第18课 《我的白鸽》课件(共46张PPT).pptx VIP
- 基于机器学习的高强韧球墨铸铁成分设计和性能优化.pdf VIP
- Unit 4 Helping in the community 阅读理解专项训练(含答案解析)人教PEP版2025英语四年级上册.docx
- SY∕T 6540-2021 钻井液完井液损害油层室内评价方法.pdf
- 2025-2030中国裹粉市场动向追踪与企业经营发展分析研究报告.docx
- 精品解析:北京市第五十七中学2024-2025学年八年级下学期期中考试物理试题(解析版).docx VIP
- 工艺评审报告、评审意见汇总表 .docx VIP
- 延安市各区县地表水系图.pdf VIP
- 初一语文语文朝花夕拾名著阅读的专项培优易错试卷练习题及答案.pdf VIP
原创力文档


文档评论(0)