新版汇编语言程序设计钱晓捷第4章习题答案(4)

2019-04-16 16:29

mov dl,al shr dl,cl call dldisp mov dl,al and dl,0fh call dldisp pop dx pop cx ret dispa endp ;

dldisp proc push ax or dl,30h cmp dl,39h jbe dldisp1 add dl,7 dldisp1: mov ah,2 int 21h pop ax ret dldisp endp end

(2)采用wordTEMP变量传递这个16位二进制数 .model small .stack .data

wdata dw 34abh wordtemp dw ? .code .startup

mov ax,wdata mov wordtemp,ax call dispa .exit 0 ;

dispa proc push cx push dx mov cl,4

mov dl,byte ptr wordtemp+1 shr dl,cl call dldisp

mov dl,byte ptr wordtemp+1

and dl,0fh call dldisp

mov dl,byte ptr wordtemp shr dl,cl call dldisp

mov dl,byte ptr wordtemp and dl,0fh call dldisp pop dx pop cx ret dispa endp ;

dldisp proc push ax or dl,30h cmp dl,39h jbe dldisp1 add dl,7 dldisp1: mov ah,2 int 21h pop ax ret dldisp endp end

(3)采用堆栈方法传递这个16位二进制数 .model small .stack .data

wdata dw 34abh .code .startup push wdata call dispa

pop ax ;add sp,2 .exit 0 ;

dispa proc push bp mov bp,sp push ax push cx push dx

mov ax,[bp+4]

mov cl,4 mov dl,ah shr dl,cl call dldisp mov dl,ah and dl,0fh call dldisp mov dl,al shr dl,cl call dldisp mov dl,al and dl,0fh call dldisp pop dx pop cx pop ax pop bp ret dispa endp ;

dldisp proc push ax or dl,30h cmp dl,39h jbe dldisp1 add dl,7 dldisp1: mov ah,2 int 21h pop ax ret dldisp endp end

〔习题4.30〕设有一个数组存放学生的成绩(0 ~ 100),编制一个子程序统计0 ~ 59分、60 ~ 69分、70 ~ 79分、80 ~ 89分、90 ~ 100分的人数,并分别存放到scoreE、scoreD、score C、score B及score A单元中。编写一个主程序与之配合使用。 〔解答〕

.model small .stack .data

score db 70,86,90,45,60,96,100,0,... ;全班成绩数组 count equ $-score ;总人数 scoreE db ? ;0--59分人数 scoreD db ? ;60--69分人数

scoreC db ? ;70--79分人数 scoreB db ? ;80--89分人数 scoreA db ? ;90--99分人数 .code .startup lea bx, score mov cx, count again:

mov al,[bx] ;取一个成绩 call tjrs ;调用统计分段人数 inc bx ;调整指针

loog again ;cx-cx-1,cx=0退出循环 .exit 0

tjrs proc ;统计分段人数 cmp al, 60

jae next0 ;al>= 60转

inc scoreE ;al<60,0--59分的人数加1 jmp next4 next0: cmp al, 70 jae next1 inc scoreD jmp next4 next1: cmp al, 80 jae next2 inc scoreC jmp next4 next2: cmp al, 90 jae next3 inc scoreB jmp next4 next3: inc scoreA next4: ret tjrs endp end

〔习题4.31〕编写一递归子程序,计算指数函数X n 的值。 〔解答〕 model small .stack .data x dw 5 n dw 6 zish dw ? .code

.startup mov bx,x push bx mov bx,n push bx mov bx,x call zshhsu pop zish add sp,2 .exit 0 zshhsu proc push bx push ax push bp mov bp,sp mov ax,[bp+8] cmp ax,0 jne zshhsu1 inc ax

jmp zshhsu2 zshhsu1: dec ax push bx push ax call zshhsu pop ax pop bx mul bx

zshhsu2: mov [bp+8],ax pop bp pop ax pop bx ret

zshhsu endp end


新版汇编语言程序设计钱晓捷第4章习题答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: