云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 微机原理与接口技术李珍香版课后习题4参考答案

微机原理与接口技术李珍香版课后习题4参考答案

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 13:04:15

end start

4.13 编写一个统计分数段的子程序,要求将100分、90~99分、80~89分、70~79分、60~69分、60分以下的学生人数统计出来,并分别送往S10、S9、S8、S7、S6、S5各单元中。(学生人数和每人的成绩由用户自己定义)

参考程序:

DATA SEGMENT

grad db 77,68,82,90,54,69,72,86,91,100 s10 db ? s9 db ? s8 db ? s7 db ? s6 db ? s5 db ? DATA ENDS code segment

assume cs:code,ds:data start:

mov ax,data mov ds,ax mov cx,s10-grad call count mov ah,4ch int 21h count proc near mov si,0 next:mov al,grad[si] mov ah,0 mov bx,10 div bl cbw mov bx,ax sub bx,10 neg bx inc s10[bx] inc si loop next ret count endp code ends end start

4.14 将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这四组数作为数当中

·5·

的低4位分别放在AL、BL、CL和DL中。

参考程序: code segment assume cs:code start:

MOV BX,AX MOV DX,AX MOV CL,4 SHR AH,CL MOV AL,AH MOV BL,BH AND BL,0FH MOV DH,DL SHR DH,CL MOV CL,DH mov ah,4ch int 21h code ends end start

4.15设有两个16位整数变量A和B,试编写完成下述操作的程序: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。 (2)若两个数均为奇数,则两数分别减1,并存回原变量中。 (3)若两个数均为偶数,则两变量不变。 参考程序:

DATA SEGMENT a dw ? b dw ? DATA ENDS code segment

assume cs:code,ds:data start:

mov ax,data mov ds,ax lop: mov ax,a mov bx,b xor ax,bx test ax,0001H jz next test bx,0001H jz exit xchg bx,a

·6·

mov b,bx jmp exit next:test bx,0001h jz exit dec b dec a exit:mov ah,4ch int 21h code ends end start

4.16 设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查找单词“is”在该文中的出现次数,并将次数显示出来。(英文内容由用户自己定义)

参考程序:

DATA SEGMENT

ENG db 'this is an program example$' n1 equ $-eng str db 'is' n2 equ $-str DATA ENDS code segment

assume cs:code,ds:data,es:data start:

mov ax,data mov ds,ax mov es,ax xor dx,dx mov cl,n1 xor ch,ch cmp cx,n2 jbe disp mov al,str lea di,eng cld search:

repne scasb jne disp mov bl,str+1 cmp es:[di],bl je exist jcxz disp lop: jmp search

·7·

exist:inc dl cmp cx,1 jz disp jmp lop disp: or dl,30h mov ah,2 int 21h mov ah,4ch int 21h code ends end start

4.17 请编写程序实现以下功能:设在A、B和C单元中分别存放着一个8位带符号数。试比较这3个数,若3个数都不是0,则求出3数之和并存放于D单元中;若其中有一个数为0,则把其它两个单元也清零。

参考程序:

DATA SEGMENT a Db 10 b db -10 c db 30 d db ?

DATA ENDS code segment

assume cs:code,ds:data start:

mov ax,data mov ds,ax xor dx,dx cmp a,0 jz next mov dl,a cmp b,0 jnz lop1 next:mov b,0 mov c,0 mov a,0 jmp exit lop1:add dl,b cmp c,0 jz next add dl,c mov d,dl

·8·

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

end start 4.13 编写一个统计分数段的子程序,要求将100分、90~99分、80~89分、70~79分、60~69分、60分以下的学生人数统计出来,并分别送往S10、S9、S8、S7、S6、S5各单元中。(学生人数和每人的成绩由用户自己定义) 参考程序: DATA SEGMENT grad db 77,68,82,90,54,69,72,86,91,100 s10 db ? s9 db ? s8 db ? s7 db ? s6 db ? s5 db ? DATA ENDS code segment assume cs:code,ds:data start: mov ax,data mov

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com