ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:96.79KB ,
资源ID:26759359      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26759359.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编第六章答案.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编第六章答案.docx

1、汇编第六章答案第六章答案=1、下面得程序段有错吗?若有,请指出错误、CRAY PROCPUSH AXADD AX,BXRETENDP CRAY解:当然有错误,ENDP CRAY写反了,应该将其改成CRAY ENDP、2、已知堆栈寄存器SS得内容就是0F0A0H,堆栈指示器SP得内容就是00B0H,先执行两条把8057H与0F79BH分别入栈得PUSH指令、然后再执行一POP指令、试画出示意图说明堆栈及SP内容得变化过程、3、分析下面6,3得程序,画出堆栈最满时各单元得地址及内容、; 6、3题得程序;=S_SEG SEGMENT AT 1000H ;DEFINE STACK SEGMENTDW

2、200 DUP(?)TOS LABEL WORDS_SEG ENDSC_SEG SEGMENT ;DEFINE CODE SEGMENTASSUME CS:C_SEG,SS:S_SEGMOV AX,S_SEGMOV SS,AXMOV SP,OFFSET TOSPUSH DSMOV AX,0PUSH AX、PUSH T_ADDRPUSH AXPUSHF、POPFPOP AXPOP T_ADDRRETC_SEG ENDS ;END OF CODE SEGMENTEND C_SEG ;END OF ASSEMBLY4、分析下面6、4题得程序得功能,写出堆栈最满时各单元得地址及内容、; 6、4题得程序

3、;=STACK SEGMENT AT 500HDW 128 DUP(?)TOS LABEL WORDSTACK ENDSCODE SEGMENT ;DEFINE CODE SEGMENTMAIN PROC FAR ;MAIN PART OF PROGRAMASSUME CS:CODE,SS:STACKSTART: ;STARTING EXECUTION ADDRESSMOV AX,STACKMOV SS,AXMOV SP,OFFSET TOSPUSH DSSUB AX,AXPUSH AX;MAIN PART OF PROGRAM GOES HEREMOV AX,4321HCALL HTOARE

4、T ;RETURN TO DOSMAIN ENDP ;END OF MAIN PART OF PROGRAMHTOA PROC NEAR ;DEFINE SUBPROCEDURE HTOACMP AX,15JLE B1PUSH AXPUSH BPMOV BP,SPMOV BX,BP+2AND BX,000FHMOV BP+2,BXPOP BPMOV CL,4SHR AX,CLCALL HTOAPOP AXB1:ADD AL,30HCMP AL,3AHJL PRINTITADD AL,07HPRINTIT:MOV DL,ALMOV AH,2INT 21HRETHTOA ENDP ;END OF

5、SUBPROCEDURECODE ENDS ;END OF CODE SEGMENTEND START ;END OF ASSEMBLY5、下面就是6、5题得程序清单,请在清单中填入此程序执行过程中得堆栈变化、0000 STACKSG SEGMENT0000 20 、 DW 32 DUP(?)?0040 STACKSG ENDS0000 CODESG SEGMENT PARA CODE0000 BEGIN PROC FAR ASSUME CS:CODESG,SS:STACKSG0000 1E PUSH DS0001 2B C0 SUB AX,AX0003 50 PUSH AX0004 E8 0

6、008 R CALL P100007 CB RET0008 BEGIN ENDP0008 B10 PROC0008 E8 000C R CALL C10000B C3 RET000C B10 ENDP000C C10 PROC000C C3 RET000D C10 ENDP000D CODESG ENDS END BEGIN6、写一段子程序SKIPLINES,完成输出空行得功能、空行得行数在AX寄存器中、解:SKIPLINES PROC NEAR PUSH CX PUSH DX MOV CX,AX NEXT: MOV AH,2 MOV DL,0AH INT 21H MOV AH,2 MOV D

7、L,0DH INT 21H LOOP NEXT POP DX POP CX RET SKIPLINES ENDP7、设有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单元中、DSEG SEGMENT NUM DW 76,69,84,90,73,88,99,63,100,80 N DW 10 S6 DW 0 S7 DW 0 S8 DW 0 S9 DW 0 S10 DW 0 DSEG ENDS CODE SEGMENT MAIN PR

8、OC FAR ASSUME CS:CODE, DS:DSEG START: PUSH DS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX CALL SUB1 RET MAIN ENDP SUB1 PROC NEAR PUSH AX PUSH BX PUSH CX PUSH SI MOV SI, 0 MOV CX, N NEXT: MOV AX, NUMSI MOV BX, 10 DIV BL MOV BL, AL CBW SUB BX, 6 SAL BX, 1 INC S6BX ADD SI,2 LOOP NEXT POP SI POP CX POP B

9、X POP AX RET SUB1 ENDP CODE ENDS END START (解法二)datasg segmentgrade db 76,69,84,90,73,88,99,63,100,80s6 db 0s7 db 0s8 db 0s9 db 0s10 db 0mess6 db 6069:$mess7 db 7079:$mess8 db 8089:$mess9 db 9099:$mess10 db 100:$datasg endscodesg segmentmain proc far assume cs:codesg,ds:datasgstart: push ds sub ax,a

10、x 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,mess1

11、0 call dispstr mov dl,s10 call dispscore call crlf retmain endpsub1 proc near mov cx,10 mov si,0loop1: mov al,gradesi cmp al,60 jl next5 cmp al,70 jge next1 inc s6 jmp short next5next1: cmp al,80 jge next2 inc s7 jmp short next5next2: cmp al,90 jge next3 inc s8 jmp short next5next3: cmp al,100 jg ne

12、xt5 je next4 inc s9 jmp short next5next4: inc s10next5: inc si loop loop1 retsub1 endpdispstr proc near mov ah,9 int 21hdispstr endpdispscore proc near add dl,30h mov ah,2 int 21hdispscore endpcrlf proc near mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h retcrlf endpcodesg endsend start8、编写

13、一个有主程序与子程序结构得程序模块、子程序得参数就是一个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 A

14、SSUME 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 ; 通过地址表传送变量地址 CALL COUNT ; 计算CHAR得出现次数 CALL DISPLAY ; 显示 RET MAIN EN

15、DPCOUNT PROC NEAR ; COUNT子程序 PUSH SI PUSH DI PUSH AX PUSH CX MOV DI, BX MOV SI, BX+2 MOV CL, BYTE PTRSI MOV CH, 0 MOV SI, BX+4 MOV AL, BYTE PTRSI MOV BX, 0 AGAIN: CMP AL, BYTE PTRDI JNE L1 INC BX L1: INC DI LOOP AGAIN POP CX POP AX POP DI POP SI RET COUNT ENDP DISPLAY PROC NEAR ; DISPLAY子程序 CALL CRL

16、F ; 显示回车与换行 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

17、 END START9、编写一个子程序嵌套结构得程序模块,分别从键盘输入姓名及8个字符得电话号码,并以一定得格式显示出来、主程序TELIST:(1)显示提示符INPUT NAME:;(2)调用子程序INPUT_NAME输入姓名:(3)显示提示符INPUT A TELEPHONE NUMBER:;(4)调用子程序INPHONE输入电话号码;(5)调用子程序PRINTLINE显示姓名及电话号码;子程序INPUT_NAME:(1)调用键盘输入子程序GETCHAR,把输入得姓名存放在INBUF缓冲区中;(2)把INBUF中得姓名移入输出行OUTNAME;子程序INPHONE:(1)调用键盘输入子程序G

18、ETCHAR,把输入得8位电话号码存放在INBUF缓冲区中;(2)把INBUF中得号码移入输出行OUTPHONE、子程序PRINTLINE:显示姓名及电话号码,格式为:NAME TEL* *=;编写一个子程序嵌套结构得程序模块,分别从键盘输入姓名及8个字符得电话号码,并以一定得格式显示出来(解法一)data segment No_of_name db 20 No_of_phone db 8 inbuf db 20 dup(?) outname db 20 dup(?),$ outphone db 8 dup(?),$ message1 db please input name:,$ messa

19、ge2 db please input a telephone number:,$ message3 db NAME,16 dup(20h),TEL、,13,10,$ errormessage1 db you should input 8 numbers!,13,10,$ errormessage2 db you input a wrong number!,13,10,$ flag db ?data endsprog segmentmain proc far assume cs:prog,ds:datastart: push ds sub ax,ax push ax mov ax,data m

20、ov ds,ax mov flag,0 lea dx,message1 mov ah,09 int 21h call input_name call crlf lea dx,message2 mov ah,09 int 21h call inphone call crlf cmp flag,1 je exit call printlineexit: retmain endpinput_name proc near push ax push dx push cx mov cx,0 mov cl,No_of_name call getchar mov ax,0 mov al,No_of_name

21、sub ax,cx mov cx,ax mov si,0next1: mov al,inbufsi mov outnamesi,al inc si loop next1 pop cx pop dx pop ax retinput_name endpinphone proc near push ax push dx mov cx,0 mov cl,No_of_phone call getchar cmp cx,0 jnz error1 mov cl,No_of_phone mov si,0 next2: mov al,inbufsi cmp al,30h jl error2 cmp al,39h

22、 ja error2 mov outphonesi,al inc si loop next2 jmp exit2error1: call crlf lea dx,errormessage1 mov ah,09 int 21h mov flag,1 jmp exit2error2: call crlf lea dx,errormessage2 mov ah,09 int 21h mov flag,1 jmp exit2exit2: pop dx pop ax retinphone endpgetchar proc near push ax push dx mov di,0rotate: mov

23、ah,01 int 21h cmp al,0dh je exit1 mov inbufdi,al inc di loop rotateexit1: pop dx pop ax retgetchar endpcrlf proc near push ax push dx mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h pop dx pop ax retcrlf endpprintline proc near push ax push dx lea dx,message3 mov ah,09 int 21h lea dx,outnamemov ah,09int 21hlea dx,outphonemov ah,09int 21h pop dx pop ax retprintline endpprog endsend main=;从键盘输入姓名及8个字符得电话号码,并以一定得格式显示出来datarea segmentinbuf label byte ;name parameter list:maxnlen

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1