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

上传人:m**** 文档编号:548254942 上传时间:2023-04-19 格式:DOCX 页数:9 大小:31.73KB
返回 下载 相关 举报
微机原理与接口技术李珍香版课后习题4参考答案_第1页
第1页 / 共9页
微机原理与接口技术李珍香版课后习题4参考答案_第2页
第2页 / 共9页
微机原理与接口技术李珍香版课后习题4参考答案_第3页
第3页 / 共9页
微机原理与接口技术李珍香版课后习题4参考答案_第4页
第4页 / 共9页
微机原理与接口技术李珍香版课后习题4参考答案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《微机原理与接口技术李珍香版课后习题4参考答案》由会员分享,可在线阅读,更多相关《微机原理与接口技术李珍香版课后习题4参考答案(9页珍藏版)》请在金锄头文库上搜索。

1、习题 4 参考答案简述汇编语言与机器语言及高级语言间的区别参考答案:要点:汇编语言与机器语言的区别:汇编语言采用符号表示,机器语言二进制表示。汇编语言与高级语言的区别:汇编语言属于低级语言,每条指令与对应的机器指令间是一一对应关系,而高级语言接近于自然语言。简述汇编语言程序的指令语句与伪指令语句在写法及功能上的不同参考答案:要点:写法上的不同主要表现在第一部分上,一条指令的第一部分“标号”若需要,则在标号后面一定有冒号“:”,而伪指令语句的第一部分在“名字”后没有冒号“:”。功能上的不同:每一条指令都有对应的机器指令,在程序运行过程中执行到每条指令时起作用;伪指令没有对应的机器指令,是在程序汇

2、编时起作用。汇编语言程序的标号有何规定标号有哪三种属性参考答案:略汇编语言程序的变量如何定义变量有哪三种属性参考答案:略汇编语言程序中,算术表达式、逻辑表达式、关系表达式各有什么含义参考答案:略简述汇编语言程序上机的基本步骤和每步所进行的主要操作参考答案:略设TABLE为数据段中0100H单元的符号名,其中存放的内容为FF00H,试分析以下两条指令分别执行后的结果,并指出它们之间的区别MOV AX,TABLEMOV AX,OFFSET TABLE参考答案:第一条指令传送的是TABLE所指单元的内容,AX结果为FF00H;第二条指令传送的是TABLE的偏移地址,AX结果为0100H。设有如下的变

3、量定义:DATA SEGMENTARRAY DW 1000H,2000H,3000H,4000H,5000HBUFDWDATAENDS请分别完成以下操作(1)用一条指令完成将 ARRAY的偏移地址送BX(2)用一条指令完成将 ARRAY的第一字节单元内容送 AL(3)用一条指令完成将 ARRAY定义的数据个数送CX参考答案:( 1 ) LEA BX,ARRAY(2) MOV AL, BYTE PTR ARRAY(3) MOV CX,( BUF- ARRAY) /2已知一数据段中的数据定义如下:DATA SEGMENTSTR1DB 1,2,3,4,5STR2DB 12345CONTEQU 20N

4、UMBDB 3 DUP(6)NUMWDW 20H,-80HTABLE DW 0DATAENDS试根据以上数据段的定义,指出下列每小题指令中的错误或者用得不当的指令。;STR1定义为字节类型,不能当字变量使用;+为立即数,BX存储器操作数应明确类型NUMW 为字类型,不能当字节变量使用;源操作数“ BX+3”不是正确表达式; INC 中的操作数不能为立即数MOV 中的两个操作数不能同时为存储器操作数;此处不应用 MOV指令,而应该用 CWD指令;此处不应用 DIV 指令,而应该用 IDIV 指令Hello Wowld! ”中的全部小写字母转换为大写字母,并存放回( 1 ) MOV AX,STR1

5、( 2 ) MOV BX,OFFSET NUMBMOV BX, +( 3) MOV DL,NUMW+2( 4 ) MOV BX,OFFSET STR1MOV DH,BX+3( 5) INC CONT(6) MOV STR1,STR2( 7 ) MOV AX,NUMW+2MOV DX,0DIV NUMW参考答案: 分号“;”后面为答案编写一个汇编语言程序,将字符串“原地址处。参考程序:DATA SEGMENTSTRING DB Hello Wowld!LEN equ $-stringDATA ENDScode segmentassume cs:code,ds:datastart:mov ax,d

6、atamov ds,axmov bx,offset stringmov cl,lennext:mov al,bxcmp al,ajb lopcmp al,zja lopsub al,20hmov bx,allop: inc bxdec cljnz nextmov ah,4chint 21hcode endsend start编写一个带符号数四则运算的程序,完成(Z-(X*Y+200) ) /20的运算,商送 V单元,余数送 W单元。这里,X,Y,Z均为16位的带符号数,内容用户自己定义。参考程序:DATA SEGMENTx DW 2y dw -10z dw 300v dw w dw DATA

7、ENDS code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov ax,x mov bx,y imul bx mov cx,200 mov bx,0 add ax,cx adc dx,bx mov cx,z mov bx,0 sub cx,ax sbb bx,dx xchg cx,ax xchg bx,dx mov bx,20 idiv bxmov v,ax mov w,dxmov ah,4chint 21hcode endsend start编写一个汇编语言程序,完成以下要求。从BUF单元处定义有10个带符号字数据:-1

8、、3、24、94 、 62 、 72、 55、 0、 -48 、 99,试找出它们中的最大值和平均值,并依次分别存放至该数据区的后2 个单元中(假设这10 个数的和值不超过16 位)。参考程序 :DATA SEGMENTbuf DW -1,3,24,94,62,72,55,0,-48,99n equ ($-buf)/2max dw ave db , DATA ENDS code segment assume cs:code,ds:data start:mov ax,datamov ds,ax lea si,buf clcxor ax,ax xor dx,dx mov ax,si mov cx,

9、n next:adc dx,si cmp ax,si jge goon mov ax,si goon:add si,2 loop next mov max,ax mov bl,n mov ax,dx idiv bl mov ave,al mov ave+1,ah mov ah,4ch int 21h code endsend start编写一个统计分数段的子程序,要求将 100分、9099分、8089分、7079分、6069分、 60分以下的学生人数统计出来,并分别送往S10、S3 S& S7、S6、S5各单元中。(学生人数和每人的成绩由用户自己定义)参考程序:DATA SEGMENTgrad

10、db 77,68,82,90,54,69,72,86,91,100s10dbs9dbs8dbs6dbs5 dbDATA ENDScode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov cx,s10-grad call countmov ah,4chint 21hcount proc nearmov si,0next:mov al,gradsimov ah,0mov bx,10 div blcbwmov bx,axsub bx,10neg bxinc s10bxinc siloop next retcount endpcod

11、e endsend start将 AX 寄存器中的 16 位数据分成4 组(从高到低) , 每组 4 位,然后把这四组数作为数当中的低4位分别放在AL、BL、CL和DL中。参考程序:code segmentassume cs:codestart:MOV BX,AXMOV DX,AXMOV CL,4SHR AH,CLMOV AL,AHMOV BL,BHAND BL,0FHMOV DH,DLSHR DH,CLMOV CL,DHmov ah,4chint 21hcode endsend start设有两个16位整数变量A和B,试编写完成下述操作的程序:( 1 )若两个数中有一个是奇数,则将奇数存入

12、A 中,偶数存入 B 中。( 2 )若两个数均为奇数,则两数分别减1 ,并存回原变量中。( 3 )若两个数均为偶数,则两变量不变。参考程序:DATA SEGMENTadwbdwDATA ENDScode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlop: mov ax,amov bx,bxor ax,bxtest ax,0001Hjz nexttest bx,0001Hjz exitxchg bx,amov b,bxjmp exitnext:test bx,0001hjz exitdec bdec aexit:mov ah,4

13、chint 21hcode endsend start设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查找单词“is”在该文中的出现次数,并将次数显示出来。(英文内容由用户自己定义)参考程序:DATA SEGMENTENG db this is an program example$ n1 equ $-engn2 equ $-strDATA ENDScode segmentassume cs:code,ds:data,es:datastart:mov ax,datamov ds,axmov es,ax xor dx,dx mov cl,n1 xor ch,chcmp cx,n

14、2jbe dispmov al,str lea di,eng cldsearch:repne scasbjne dispmov bl,str+1cmp es:di,blje existjcxz disp lop: jmp search exist:inc dlcmp cx,1jz dispjmp lop disp: or dl,30h mov ah,2 int 21h mov ah,4ch int 21hcode endsend start请编写程序实现以下功能: 设在A、 B 和 C 单元中分别存放着一个8 位带符号数。 试比较这 3 个数,若 3 个数都不是0 ,则求出3 数之和并存放于D 单元中;若其中有一个数为0 ,则把其它两个单元也清零。参考程序:DATA SEGMENTa Db 10b db -10c db 30DATA ENDScode segmentassume cs:code,ds:data start:mov ax,datamov ds,axxor dx,dxcmp a,0jz next mov dl,a cmp b,0 jnz lop1next:mov b,0mov c,0mov a,0jmp exitlop1:add dl,b

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号