汇编模拟试题A - 图文

更新时间:2024-06-05 14:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

三、程序分析题 ( 每小题 15 分 共 30 分 ) 1、假设数据段中数据定义如下,执行下面程序段并回答问题。 2010-2011学年第1学期考试试卷(A) data segment var dw 'AB',12,34 var1 db 127,'ab',45 var2 dd 23 count equ $-var1 x dw count dup(count dup (0)) y label word z db '123abc' v dw 1234h,$-var data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,count ;(ax)=? ……………………….[1.1] mov bx,z-x ;(bx)=? ………………………..[1.2] mov cx,v+2 ;(cx)=? ………………………..[1.3] mov dx,var ;(dx)=? ………………………..[1.4] mov y+3,2 mov si,y+4 ;(si)=? ………………………..[1.5] add z+5,1 mov di,word ptr z+4 ;(di)=? ………………………..[1.6] mov ax,4c00h int 21h code ends end start 2、设数据X、Y均为字节型变量,编写计算下面函数值的程序。 课程名称: 汇编语言程序设计 共 2 页 考试时间: 120 分钟 总分: 100分 考试方式: 闭卷 适用专业(班级): 计算机科学与技术 班级 姓名 学号 注:答案必须写在答题纸上,并注明题号,例如二、【1】、,否则成绩记为0。 一、选择题(单选,每小题2分,共10分) 1、8086/8088CPU的寄存器组中,8位的寄存器共有( c)个。 A、4 B、6 C、8 D、10 2、设(DS)=2000H,(ES)=3000H,(SI)=200H,指令”MOV ES:[SI],AL”目的操作数的物理地址为(b )。 A、20200H B、30200H C、50200H D、200H 3、若定义”B DW 1,2,10 DUP(0)”,则该伪指令分配(d )个字节单元。 A、10 B、20 C、22 D、24 4、下列指令正确的是(c )。 A、MOV CX,DL B、MOV IP,AX C、MOV AL,30H D、MOV [SP],AX 5、Intel386以上的处理器工作在(a )下存储器的地址采用虚拟地址、线性地址、物理地址3种方式来描述,需要通过一种称为描述符表的数据结构来实现对内存单元的访问。 A、保护模式 B、系统模式 C、V86模式 D、实模式 二、填空题(每空 2分,共10 分) 1、8086/8088CPU的地址有20根(位),则可寻址的内存地址空间是 1M 。 2、如果(AL)=85H,(CL)=4,则执行指令”SAR AL, CL”后,(AL)=0f8h 。 3、语句”MOV BX,OFFSET A”可用LEA BX,A一条指令代替。 4、微机系统中数据传送方式主要 程序控制方式 、中断方式、直接存储器存取DMA方式、通道和I/O处理机方式。 5、执行如下程序: main( ) {printf(“display a character c: ”); _ _asm mov ah,02h _ _asm mov dl,?E? _ _asm int 21h } 输出结果: display a character c: E 。 ?1?Y??0??1?.model small .stack X?0X?0X?0 要求用JGE和JG实现程序功能,请完善下列程序。 《汇编语言程序设计》试卷(A),共2页,第1页

.data x db 4 y db ? .code .startup cmp x,0 [2.1] ;当x>=0时,则转到next1 [2.2] ;当x<0时,-1→y jmp quit next1: [2.3] ;当x>0时,则转到next2 [2.4] ;当x=0时,0→y jmp quit next2: [2.5] ;当x>0时,1→y quit: .exit end int 21h ; [1.5] cmp al,30h jb finish ; [1.6] cmp al,39h ja finish ; [1.7] and al,0fh xor ah,ah ; [1.8] xchg cx,ax ; [1.9] mov bx,10 mul bx ; [1.10] add cx,ax ; [1.11] jmp next finsh: mov ax,cx ; [1.12] pop dx pop cx pop bx pop ax ret ;[1.13] decibin endp ; [1.14] end ; [1.15] 四、程序解释题(每小题15分,共15分) 解释有标号语句在程序中的功能,例如:[1.0] 简化段定义,存储模式为小模式small 1、从键盘接收一个无符号十进制数,存入变量array中。例如从键盘输入:1234,则(array)=1234。 .model small ; [1.0] 简化段定义,存储模式为小模式small .stack .data ; [1.1] array dw ? .code .startup call decibin ; [1.2] mov array,ax ; [1.3] .exit ;子程序名:decibin ;功能:从键盘接收一个无符号十进制数 ;入口参数:无 ;出口参数:ax ;其他说明:在子程序内部使用cx存放已经接收到的十进制数,再读入十进制数则:cx*10+al→cx, ;输入的数据在0~65535。 decibin proc near push ax push bx push cx push dx xor cx,cx ; [1.4] next: mov ah,01h 五、编程题(1、2每小题10分,3小题15分,共35分) 1、试编制一个程序,求出首地址为array的200个字数组中的最小奇数,并把它存入ax中。 2、 比较两个字符串str1和str2所含的字符是否相同,若相同则显示”match!”,否则,显示”no match”。要求用cmp和loop实现,部分指令如下,n1为字符串str1的字节数,n2为字符串str2的字节数。 .model small .stack .data str1 db ?Assembly Language? n1=$-str1 str2 db ?Assembly Language? n2==$-str2 mess1 db “match!”,13,10,?$? mess2 db “no match.”,13,10,?$? ……. 3、在以BUF为首址的字存储区中存放有N个有符号数,要求采用“选择法”将它们按从大到小的顺序排列在BUF存储区中,试编写其程序。 《汇编语言程序设计》试卷(A),共2页,第2页

本文来源:https://www.bwwdw.com/article/b6i6.html

Top