第一范文网 - 专业文章范例文档资料分享平台

80X86汇编语言程序设计教程+课后习题答案(清华大学版)

来源:用户分享 时间:2025/6/7 6:08:25 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

loop count1

ret

countAX endp

;=============================

题3.22 设一个32位有符号数存放在DX:AX中,请写一个求其补码的程序片段。

答: Invert proc mov bx,dx and bx,8000h cmp bx,0 jz out_1 not dx not ax add ax,1 adc dx,0 or dx,8000h out_1:

nop ret

Invert endp

题3.23 写一个程序片段实现如下功能:依次重复寄存器AL中的每一位,得到16位的结果存

放到DX寄存器中。

答: Expand proc mov cx,7 xor dx,dx S0:

shl dx,1 shl dx,1 shl al,1 jnc CF0 add dx,3h CF0: nop loop S0 ret

Expand endp

题3.24 写一个程序片段实现如下功能:依次重复四次寄存器AL中的每一位,得到32位的结果

存放到DX:AX寄存器中。

答: Expand proc mov cx,3 xor dx,dx xor bx,bx S0: shl al,1 jnc CF0 add dx,0Fh CF0: shl dx,1 shl dx,1 shl dx,1 shl dx,1 loop S0

mov cx,4 S1: shl al,1 jnc CF0_1 add bx,0Fh CF0_1: shl bx,1 shl bx,1 shl bx,1 shl bx,1 loop S1 mov ax,bx ret Expand endp

题3.25 写一个程序片段实现如下功能:把寄存器AL和BL中的位依次交叉,得到的16位结果

存放到DX寄存器中。

答: Expand proc mov cx,8 xor dx,dx S0:

shl dx,1 shl al,1 jnc CF0 add dx,1h

CF0: shl dx,1 shl bl,1 jnc CF0_1 add dx,1h CF0_1: loop S0 ret

Expand endp

题3.26 写一个优化的程序片段,实现把字符串中的小写子母变换为对应的大写子母。设字符串

以0结尾。

答: InvertC proc begin:

mov al,mess[si] cmp al,'0' jz exit_1 cmp al,61h jb next

cmp al,7AH ja next

and al,11011111b mov mess[si],al next: inc si jmp begin exit_1: nop ret

InvertC endp

题3.27 写一个优化的程序片段,统计字符串的长度。设字符串以0结尾。 答: count proc mov al,mess[si] cmp al,'0' jz exit_2 inc si jmp count exit_2:

nop ret

count endp ;si=数量

题3.28 写一个程序片段,滤去某个字符串中的空格符号(ASCII码20H),设字符串以0结尾。

答: DeleteSpace proc ;设si=0,bx=0,Mess为字符串首地址 mov al,mess[si] cmp al,'0' jz exit_2 cmp al,' ' jz next3 xchg al,mess[bx] xchg al,mess[si] inc bx next3: inc si

jmp DeleteSpace exit_2:

nop ret

DeleteSpace endp

题3.29 请写一个把两个字符串合并的示例程序。 答: dseg segment string1 db 'Welcome to $' string2 db 'Beijing !$' dseg ends

cseg segment

assume cs:cseg,ds:dseg start:

mov ax,dseg mov ds,ax

xor bx,bx xor si,si

keepfind:

mov al,string1[bx] cmp al,'$' jz combine inc bx jmp keepfind combine:

mov al,string2[si] mov string1[bx],al cmp al,'$'

80X86汇编语言程序设计教程+课后习题答案(清华大学版).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3q6ot08c8p6trx0166d2_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top