东南大学微机原理与接口技术期终考试复习资料汇总_第1页
东南大学微机原理与接口技术期终考试复习资料汇总_第2页
东南大学微机原理与接口技术期终考试复习资料汇总_第3页
东南大学微机原理与接口技术期终考试复习资料汇总_第4页
东南大学微机原理与接口技术期终考试复习资料汇总_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. 1.设置cx0,则loop指令将执行多少次?例如: mov cx, 0 delay: loop delay a.0 b.1 c.65535 d.65536 正确答案是: d 2.repz cmpsb这条指令结束的时候,如果比较的串相等,则_。 a.sf=1 b.zf=1 c.zf=0 d.cx不为0 正确答案是: b 3.在取指令cmp bx, 100h的源操作数的时候使用的逻辑地址最可能的是_。 a.ds:100h b.cs:ip c.es:100h d.ss:ip 正确答案是: b 4. 在一个字符串中查找一个字符,使用repnz scasb指令,执行完后,如果_表示没有找到。 a.z

2、f=1 b.cx=0 且zf=0 c.cx=0,且zf=1 d.of=1 正确答案是: b 5. 指令ret 8是far过程的返回语句,执行之后,sp的值会_。 a.+8 b.-8 c.+10 d.+12 正确答案是: d 6. repz重复前缀重复的条件是_ a.cx0 且zf=1 b.cx=0,或zf=0 c.cx=0,且zf=0 d.cx0 或zf=1 精品. 正确答案是: a 12. 下面的指令,对cf会产生影响的指令是_。 a.inc ax b.dec ax c.neg ax d.not ax 正确答案是: c 15. jmp word ptrsi这条指令的最大跳转范围是_。 a.-

3、32768字节至+32767字节 b.-128字节至+127字节 c.-32768字节至+32768字节 d.-512kb至+512kb 正确答案是: a 19. 16位汇编的寻址方式中,能作为基址变址寻址方式的寄存器是_。 a.si, di, ss, ds b.ax,bx,cx,dx c.bx, sp,si,di d.bx,bp,si,di 正确答案是: d 23. 如果(al)83h,则执行cbw之后,ax的值为_。 a.0ff83h b.8883fh c.8003fh d.0083fh 正确答案是: a 25. 以下的公式中,_的结果是下一条指令的物理地址。 a.cs*16+ip b.c

4、s*16+ip+本条指令的字节数 c.ss*16+ip d.cs*10+ip 正确答案是: a 精品.1. 在内存中从table开始的10个单元中连续存放0到9的平方值,任给一个0到9的数x,该数存放在内存单元xx中,查表求x的平方值,并将结果存于内存yy单元中。编写程序,并在debug中进行调试和验证结果。(提示:考虑平方表的每一项需要什么数据类型才合适, xlat指令是否合适?应该如何查表?).8086.model small.data org 10h table byte 0,1,4,9,16,25,36,49,64,81 x byte 7 y byte ?.codestart: mov

5、 ax , data mov ds , ax mov bx , offset table mov al , x xlat mov y , alend start2. 假设cx:bx中放了4位非压缩的bcd码表示的十进制数4386,请编写完整程序将这个数转成2进制数放到di寄存器中,并用debug调试和验证之.8086.model small.data.codestart: mov ax , data mov ds , ax mov cx , 0403h mov bx , 0806h mov di , 0 mov ax , 0 add al , bl add di , ax mov al , 1

6、0 mul bh add di , ax mov ax , 100 mul cl add di , ax mov ax , 1000 xchg ch , cl and cx ,0fh精品. mul cx add di , axend start3. 利用跳转表技术实现根据用户输入的星期几的数字代号在屏幕上显示星期几的英文名称的功能。(提示:1)键盘输入的是数字的ascii码,需要转换成数字。2)建立一张跳转表,表中存放打印每个星期的程序段的入口地址。3)考虑怎么使程序代码量最小。).8086.model small.data table byte monday$, tuesday$, wedn

7、esday$, thursday$, friday$, saturday$, sunday$.codestart: mov ax , data mov ds , ax mov ah , 01h int 21h cmp al , 30h jbe exit cmp al , 38h jae exit and ax , 0fh sub al , 30h dec al mov cl , 10 mul cl lea dx , table add dx , ax mov ah , 9 int 21hexit: mov ah , 4ch int 21hend start4. 已知数据段有以下定义:num d

8、w 3570string db 5 dup(20h),$ ; 20h为空格的ascii码精品.请编写完整程序,在屏幕上以十进制的形式将num这个数打印出来,可以借助string这个字符串。(num这个数可以定义为一个任意字型数)。.8086.model small.data org 100h num word 3570 string byte 4 dup(20h),$.code start:mov ax , data mov ds , ax lea di , string mov ax , num mov cx , 4 ;每次循环除以10,将商作为下次的被除数,余数即为对应的十进制数字 dec

9、 di lp:push cx cwd mov cx , 10 div cx pop cx mov bx , cx add dl , 30h ;转化为对应的ascii码 mov bxdi , dl loop lp mov ah , 09h ;输出字符串,以$结尾 lea dx , string int 21h mov ah , 4ch ;退出程序 int 21hend start5. 统计以$字符结束的字符串string的字符个数。.8086.model small.data org 100h string byte hello,world!,my name is asm,$ len byte

10、? str byte 3 dup(20) , $精品.codestart:mov ax , data mov ds , ax lea di , string mov len , 0 mov bl , $ cp:cmp bl , di;bl中的值是否为$,若是则调到continue,若不是则继续比较,相应的值加1 jz continue inc len inc di jmp cp continue: mov al , len lea si , str mov cx , 3 dec si lp:push cx cbw mov cl , 10 div cl pop cx mov bx , cx ad

11、d ah , 30h mov bxsi , ah and ax , 0ffh loop lp mov ah , 09h lea dx , str int 21h mov ah ,4ch int 21h end start6.十进制到二进制数转换。从键盘取得一个十进制数,将其以二进数形式显示出来。要求定义回车换行子程序、从键盘获得十进制数(0128之间),并存放在bl中的子程序,用二进制显示bl中数据的子程序。.8086.model small.data精品.code start:mov ax,data mov ds,ax main proc far call shuru call crlf c

12、all prt call crlf mov ah,4ch int 21h main endp shuru proc near ;出口参数bl push ax ;保护现场 push cx mov bl,0 newchar:mov ah,1 int 21h ;将键盘输入的字符的ascii码传给al寄存器 sub al,30h jl exit ;小于0转 cmp al,9 jg exit ;大于9转 xchg al,bl mov cl,10 mul cl ;将以前的值乘以10 xchg al,bl add bl,al ;加这一次读的值 jmp newchar exit:pop cx pop ax r

13、et shuru endp crlf 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精品. ret crlf endp prt proc near ;入口参数bl push ax push cx push dx mov cx,8 lp:rol bl,1 ;循环左移,将二进制最高位挪到末尾 mov bh,bl and bl,01h ;只保留最后一位,即二进制的第一位 add bl,30h ;转化为0或1的ascii码 mov dl,bl

14、;调用dos的输出字符功能 mov ah,02h int 21h mov bl,bh loop lp pop dx pop cx pop si ret prt endp end start7.利用递归程序,计算n!。具体要求:用键盘输入一个数n(16之间),利用一个递归过程fac来计算n!(n放在al中,结果在dx中),然后将计算的结果以十进制形式打印到屏幕上。.8086.model small.data result word ? string byte 5 dup(?),$.codestart: mov ax,data mov ds,ax main proc far call shuru

15、call fac精品. call crlf mov dx,ax call prt mov ah,4ch int 21h main endp shuru proc near mov ah,1 int 21h sub al,30h jl exit cmp al,6 jg exit exit: ret shuru endp mov result,dx fac proc near ;入口参数al(n的值),出口参数dx(n!) cmp al,0 jnz f1 mov dx,1 ret f1:push ax dec al call fac pop cx ; 把n的值传给cx call mult ; 把n*fac(n-1)传给dx ret fac endp mult proc near 精品. mov al,cl mul dl mov dx,ax ret mult endp prt proc near lea si,string mov cx,4 dec si lp:push cx cwd mov cx,10 div cx pop cx mov bx,cx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论