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

第四章答案(2)

来源:网络收集 时间:2020-04-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

4-16 已知数组A中包含15个互不相等的整数,数据B中包含20个互不相等的整数.试编写一程序,将既在A数组中出现又在B数组中出现的整数存放于数组C中. DATA SEGMENT Ai DB a1,a2,a3,....,a15 Bi DB b1,b2,b3,....,b20 Ci DB 15 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CH,15 MOV SI,0 MOV BX,0 NEXT1: MOV DI,0 MOV CL,CH MOV AL,Ai[SI]

NEXT2: CMP AL,Bi[DI] JE DONE1 INC DI DEC CL JNZ NEXT2 JMP DONE2

DONE1: MOV Ci[BX],AL INC BX DONE2: INC SI DEC CH JNZ NEXT1 MOV AH,4CH INT 21H CODE ENDS END START

4-17 已知两个整数变量A和B,试编写完成下述操作的程序:

(1) 若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。 (2) 若两个数均为奇数,则两数分别加1,并存回原变量 (3) 若两个数均为偶数,则两变量不变。 DSEG SEGMENT A DW ? B DW ? DSEG ENDS CSEG SEGMENT MAIN PROC FAR

ASSUME CS:CSEG, DS:DSEG START: PUSH DS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX BEGIN: MOV AX, A MOV AX, B

XOR AX, BX TEST AX, 0001 JZ EXIT XCHG BX, A MOV B, BX JMP EXIT CLASS: TEXT BX, 0001 JZ EXIT INC B INC A EXIT: RET MAIN ENDP CSEG ENDS

END START

4-18 已知堆栈寄存器SS的内容是0F0A0H,堆栈指示器SP的内容是00B0H,先执行两条把8057H和0F79BH分别入栈的PUSH指令.然后再执行一POP指令.试画出示意图说明堆栈及SP内容的变化过程. MOV AX, 8057H MOV BX, 0F79BH PUSH AX PUSH BX POP BX

6

4-19 设有10个学生的成绩分别是76,69,81,90,73,88,99,63,100和80分.试编制一个子程序统计60-69,70-79,80-89,90-99和100分的人数并分别存放到S6,S7,S8,S9和S10单元中. datasg segment

grade db 76,69,84,90,73,88,99,63,100,80 s6 db 0 s7 db 0 s8 db 0 s9 db 0 s10 db 0 mess6 db '60~69:$' mess7 db '70~79:$' mess8 db '80~89:$' mess9 db '90~99:$' mess10 db '100:$' datasg ends codesg segment main proc far

assume cs:codesg,ds:datasg start: push ds sub ax,ax push ax mov ax,datasg mov ds,ax call sub1

lea dx,mess6 call dispstr mov dl,s6 call dispscore call crlf lea dx,mess7 call dispstr mov dl,s7 call dispscore call crlf

lea dx,mess8 call dispstr mov dl,s8

call dispscore call crlf

lea dx,mess9 call dispstr mov dl,s9 call dispscore call crlf

lea dx,mess10 call dispstr mov dl,s10 call dispscore call crlf ret main endp sub1 proc near mov cx,10 mov si,0 loop1: mov al,grade[si] cmp al,60 jl next5 cmp al,70 jge next1 inc s6 jmp short next5 next1: cmp al,80 jge next2 inc s7 jmp short next5 next2: cmp al,90 jge next3 inc s8 jmp short next5 next3: cmp al,100 jg next5 je next4

7

inc s9 jmp short next5 next4: inc s10 next5: inc si loop loop1 ret sub1 endp dispstr proc near mov ah,9 int 21h dispstr endp dispscore proc near add dl,30h mov ah,2

int 21h dispscore endp crlf proc near mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h ret crlf endp codesg ends end start

4-20 编写一个有主程序和子程序结构的程序模块.子程序的参数是一个N字节数组的首地址TABLE,数N及字符CHAR.要求在N字节数组中查找字符CHAR,并记录该字符的出现次数.;主程序则要求从键盘接收一串字符以建立字节数组TABLE,并逐个显示从键盘输入的每个字符CHAR以及它在TABLE数组中出现的次数.(为简化起见,假设出现次数<=15,可以用十六进制形式显示出来) [解]:

DATA SEGMENT MAXLEN DB 40 N DB ?

TABLE DB 40 DUP (?) CHAR DB 'A' ; 查找字符'A' EVEN

_ADDR DW 3 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE, DS:DATA MAIN PROC FAR START: PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX LEA DX, MAXLEN MOV AH, 0AH

INT 21H ; 从键盘接收字符串 MOV _ADDR, OFFSET TABLE MOV _ADDR+2, OFFSET N MOV _ADDR+4, OFFSET CHAR

MOV BX, OFFSET _ADDR ; 通过地址表传送变量地址

COUNT PROC NEAR ; COUNT子程序 PUSH SI PUSH DI PUSH AX PUSH CX MOV DI, [BX] MOV SI, [BX+2] MOV CL, BYTE PTR[SI] MOV CH, 0 MOV SI, [BX+4] MOV AL, BYTE PTR[SI] MOV BX, 0 AGAIN:

CMP AL, BYTE PTR[DI] JNE L1 INC BX L1: INC DI LOOP AGAIN POP CX POP AX POP DI

8

CALL COUNT ; 计算CHAR的出现次数 CALL DISPLAY ; 显示 RET MAIN ENDP

POP SI RET

COUNT ENDP

DISPLAY PROC NEAR ; DISPLAY子程序 CALL CRLF ; 显示回车和换行 MOV DL, CHAR MOV AH, 2 INT 21H MOV DL, 20H MOV AH, 2 INT 21H MOV AL, BL AND AL, 0FH ADD AL, 30H CMP AL, 3AH JL PRINT ADD AL, 7

PRINT: MOV DL, AL INT 21H CALL CRLF RET

DISPLAY ENDP

CRLF PROC NEAR ; CRLF子程序 MOV DL, 0DH MOV AH, 2 INT 21H MOV DL, 0AH MOV AH, 2 INT 21H RET CRLF ENDP CODE ENDS END START

9

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库第四章答案(2)在线全文阅读。

第四章答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/959592.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: