当前位置:问百问>百科知识>汇编语言程序设计题

汇编语言程序设计题

2024-08-26 04:40:42 编辑:zane 浏览量:573

汇编语言程序设计题

的有关信息介绍如下:

汇编语言程序设计题

汇编语言程序设计模拟题一、填空: 1、CPU的指令指针寄存器为: ,它与 寄存器联用确定下一条指令的物理地址。 2、若要将所有数据及代码都放在一个段内,应建立 存储模型。 3、操作数:ES:TABLE[DI]、FEES[EBX*2]、MSAK[EAX][EBX]分别采用 、 、 寻址方式。 4、读取当前光标位置可使用BIOS INT 10H的 号功能调用,作为出口参数,光标的行号及列号将从 寄存器中获得。 5、通常用CPU的 寄存器间接寻址端口地址。 6、如果在宏定义体设置局部标号,应使用 伪操作以避免在宏展开时出现标号的多重定义。 7、设(CS)=2A31H,(DS)=9300H,(SS)=25F0H,(BP)=0131H,(SI)=0110H,(DI)=0102H,则指令MOV AX,[BP+SI+8]的源操作数有效地址为________________,物理地址为_________________。 8、设(AX)=1000H,(BX)=2340H,则在执行了指令CMP AX,BX后,CF标志值为___________,ZF标志值为______________。 9、外设的发出中断请求若被CPU响应,有两个条件必不可少,即 和 。 10、显示字符串可使用DOS 9号功能,它要求被显示的字符串最后一个字符必须是 。 11、中断发生时,保存现场将 、 、 寄存器的内容存入堆栈。 12、n位二进制补码数的表数范围为: 。 13、将两个不同模块中的同名段重叠成两个段中较大的一个段,在定义段时应采用 组合属性。 14、操作数:ES:STRING[SI]、COUNT[ESI*4]、MSAK[EBX][ECX]分别采用 、 、 寻址方式。 15、设置光标位置可使用BIOS INT 10H的 号功能调用,作为入口参数,光标的行号及列号应存入 寄存器。 16、通常用CPU的 寄存器间接寻址端口地址。 17、若在模块1中引用模块2中定义的外部符号,则在模块1和模块2中的开头分别使用 、 伪指令。 18、设(CS)=25FFH,(DS)=2140H,(SS)=2510H,(BP)=02D0H,(SI)=0010H,(DI)=0206H,则指令MOV AX,[BP+SI+2]的源操作数有效地址为_________________,物理地址为____ __________。 19、有数据定义如下: V1 DB 4 DUP(2),2 COUNT EQU 10 V2 DD COUNT DUP(8,5 DUP(?)) 则:为变量V1分配____________个字节存贮空间;V2分配____________个字节存贮空间. 20、外设的发出中断请求若被CPU响应,有两个条件必不可少,即 和 。 21、子程序之间传递参数可使用 、 和 三种方式。 22、若中断类型为4AH,则中断向量的地址为 。 23、CPU的指令指针寄存器为: ,它与 寄存器联用确定下一条指令的物理地址。 24、当端口号≥256时,使用IN或OUT指令,必须先将端口号放到 寄存器。 25、操作数:ARY[EAX*2]、ES:[TABLE+SI]、SUM[EBX][EDX]分别采用 、 、 寻址方式。 26、变量有三属性,分别为: 、 、 。 27、如果在宏定义体设置局部标号,应使用 伪操作以避免在宏展开时出现标号的多重定义。 28、宏定义必须由伪指令 开始,伪指令 结束。 29、设(CS)=9896H,(DS)=9100H,(SS)=25F0H,(BX)=0111H,(SI)=0810H,(DI)=0102H,则指令MOV [BX+SI+8],CX的目的操作数有效地址为___ ________,物理地址为____ _________。 30、读取当前光标位置可使用BIOS INT 10H的 号功能调用,作为出口参数,光标的行号及列号将从 寄存器中获得。 31、中断发生时,保存现场将 、 、 寄存器的内容存入堆栈。 32、若:FEES DW 10 DUP(10,5 DUP(?)),则指令:MOV CX,LENGTH FEES执行后,(CX)= .二、选择题1、 下列寄存器中,( )可作为基址寄存器。A、AX B、BX C、CX D、DX2、 下列指令序列中,清除当前中断请求(EOI)命令为:( )A、MOV AL,20H B、MOV AL,20H C、MOV AL,21H D、MOV AL,21H OUT 20H,AL IN AL,20H OUT AL,21H IN AL,21H 3、 段定义时,使用( )定位类型,则该段必须从小段的边界开始。A、BYTE B、WORD C、DWORD D、PARA 4、 若:(BX)=4336H,(CX)=0136H指令:SUB BX,CX 执行后,SF、ZF、OF、CF标志分别为( )A、0,0,0,0 B、0,1,0,0 C、1,0,0,0 D、0,0,0,15、 若:FEES DW 10 DUP(100,?) 指令:MOV CX,LENGTH FEES执行后,CX的内容为:( )A、1000 B、1 C、10 D、2000 6、 在循环指令中作为计数器的是( )寄存器。A、AX B、BX C、CX D、DX7、 在执行除法指令时,若除数为零则产生一个类型号为( )的中断。A、0 B、1 C、3 D、48、 段定义时,使用( )定位类型,则该段必须从字的边界开始。A、PARA B、WORD C、DWORD D、BYTE9、 若:(BX)=4336H,(CX)=0136指令:SUB BX,CX 执行后,SF、ZF、OF、CF标志分别为:( )A、0,0,0,1 B、0,1,0,0 C、1,0,0,0 D、0,0,0,010、若:FEES DW 100 DUP(?),则指令:MOV CX,LENGTH FEES执行后,CX的内容为:( ) A、100 B、1 C、10 D、0 11、下列寄存器中,( )不能作为变址寄存器。A、EAX B、EBP C、ECX D、ESP12、 下列指令序列中,哪条指令与SUB AX,AX效果相同:( )A、AND AX,AX B、OR AX,AX C、XOR AX,AX D、NOT AX 13、 将两个不同模块中的同名段重叠成两个段中较大的一个段,应采用( )组合属性。A、PUBLIC B、COMMON C、PRIVATE D、MEMORY14、 若:(AX)=0F365H,(CX)=0E024H指令:ADD AX,CX 执行后,SF、ZF、CF、OF标志分别为:( ).A、1,0,1,0 B、0,1,0,0 C、0,0,0,0 D、0,0,0,115、 显示字符串可使用DOS 9号功能,它要求被显示的字符串最后一个字符必须是( ). A、& B、$ C、% D、@ 三、判断下列指令及伪指令是否正确(在括号中打“√”或“×”): 1、DIV 20H ( )2、XCHG BX,ES ( )3、CMP [BX],TABLE[SI] ( )4、IN AL,DX ( )5、MOV BYTE PTR[BX],25H ( )6、MOV CS,0200H ( )7、RET 8 ( )8、LEA TABLE,BX ( )9、ACL1 MACRO A,B,C ( )┆ACL1 ENDM 10、NEWP PROC ( ) ┆ NEWP ENDP 11、MUL 20H ( )12、MOV BX,[SI][DI] ( )13、CMP [BX],TABLE[SI] ( )14、OUT DX,AL ( )15、MOV [DX],25H ( )16、POP CS ( )17、RET 8 ( )18、LEA TABLE,BX ( )19、MOVE EQU MOV ( )20、FEED MACRO X,Y,Z ( ) ┆FEED ENDM21、ADD ES:BX,20H ( )22、XCHG DX,DS ( )23、CMP [BX],TABLE[SI] ( )24、OUT DX,AL ( )25、RET 8 ( )26、DATA1 DB DATA0 ( )27、MOVE EQU MOV ( )四、完成下列指令序列:1、将数据段中字串STRING1(长度为N),传送到附加段中以BUFF为首地址的缓冲区: ┆ MOV SI, MOV DI, MOV CX, N CLDREP 2、分别用一条语句实现下述指明的功能 (1)变量AYD存放的地址指针送ES和SI (2)AX的内容加1,要求不影响CF .CODEMAIN PROC FARMOV AX,@DATAMOV DS,AX1、设置中断向量(中断例行程序为INTERHAND,中段类型号为N) ┆ MOV AX,SEG INTERHAND MOV DS,AX MOV DX, MOV AL,NINT 21H ┆INTERHAND: ┆IRET 3、清除全屏幕 ┆ MOV AX, MOV BH,7 MOV CX, MOV DX, INT 10H ┆ 4、分别用一条语句实现下述指明的功能 (1)字变量LIST存放的地址指针送ES和DI. (2)将AX的内容加1,要求不影响CF. (3)将BX的高4位置1,其余位不变. (4)将SI指向的字单元内容存入堆栈. (5)比较两个带符号数,若前者≥后者,则转向NEXT. 5、清除屏幕右半区域: ┆ MOV AX, MOV BH,7 MOV CX,0 MOV DX, INT 10H ┆6、 MOV CL,8 SHL AX,CL SHR BX,CL ADD AX,BX MOV WORD PTR DATA1,AX 问:上述指令序列的功能是什么? 7、 ┆MOV AL,N MOV AH,35H INT 21H PUSH ES PUSH BX PUSH DS MOV AX,SEG INTERHAND MOV DS,OFFSET INTERHAND MOV AL,N MOV AH,25H INT 21H POP DS ┆ 问:上述指令序列的功能是什么?8、分别用一条语句实现下述指明的功能:① 栈顶内容弹出送字变量MG1. ② 变量MG2类型属性送AH. ③ AX的内容加1,要求不影响CF. ④ 将EBX的低4位取反. ⑤ 若(CX)=0则转移至NEXT. 五、分析计算题: 1. 设(AX)=201BH,(BX)=110CH,(DI)=0001H,(DS)=4000H,(4110CH)=0AH,(4110DH)=81H,(4110EH)=70H;则:① MOV AX,[BX]指令执行后,(AX)= ;② MOV BH,BYTE PTR[BX+DI+1],指令执行后,(BX)= .2. MOV AX,6540H MOV DX,3210H MOV CL,04 SHL AX,CL MOV BL,AH OR DL,BL 试问上述程序段运行后, (AX)= (BL)= (DX)= 3、DATA1 DW 1000H DATA2 DW 2000H ┆ PUSH DATA1 PUSH DATA2 POP DATA1 POP DATA2 问:①上述程序段执行后,(DATA1)= ,(DATA2)= . ②设执行前(SP)=200H,执行后(SP)= .4、 BUFF DB 7 , 6 , '56' ,?ARRAY DW 0 , 67H , 7BASUB EQU ARRAY-BUFF问:BASUB的值是多少?它表示什么意义?5、 MOV CL,3MOV BX,0B7HROL BX,1ROR BX,CL问:上述程序执行完毕,BX寄存器的内容是什么?6、 ┆ .DATA STRING1 DB 50,?,50 DUP(?)NEXT:LEA DX,STRING1MOV AX,0AHINT 21HCMP STRING1+2,0DHJE EXITJMP SHORT PTR NEXTEXIT:MOV AX,4C00HINT 21HMAIN ENDPEND MAIN 说明上述指令序列的功能。 7.设(AX)=9A6CH,(BX)=710BH,(DI)=0002H,(DS)=6000H,(6710BH)=09H,(6710CH)=87H(6710EH)=5EH;则:① MOV AX,[BX]指令执行后,(AX)= ;② MOV BL,BYTE PTR[BX+DI+1],指令执行后,(BX)= .8. OPER1 DB 1,2 OPER2 DW 1234H,5678H 则: 指令 ① MOV AX,WORD PTR OPER1+1执行后,(AX)= .② MOV AL,BYTE PTR OPER2执行后,(AL)= .③ MOV AH,SIZE OPER2执行后,(AH)= .六:叙述题: 调用程序和子程序之间参数传递有哪几种主要方式? 各自的特点是什么?简述8086CPU的中断响应过程。简述子程序调用与宏调用工作方式的区别。七:程序设计:1、设X、Y、Z、W均为16位带符号数单元地址,写出执行下述计算的子程序。 Z=│X+Y-W│2、编写汇编语言源程序:测试ALPHA字节变量单元中的ASCII码字符串,进行如下操作: (1)若为数字字符,送入NUM字节单元中,置标记FLAG为0;(2)若为大写字母字符,送入BICCHR字节单元中,置标记FLAG为0;(3)若为小写字母字符,送入SMLCHR字节单元中,置标记FLAG为0; (4)否则,置标记FLAG为1.(字符0,9,A,Z,a,z的ASCII分别为30H,39H,41H,5AH,61H,7AH)3、设X、Y、Z均为16位带符号数单元地址,写出执行下述计算的子程序。X+Z ,X≥Z Y= X-Z ,X<Z 4、已知有256个字节整数a1,a2,a3,...,a256存放在以NUMBER为首地址的数据区中。编一程序将其中的负数去除后将剩下的正数重新顺序存放在以PLUS开始的数据区中。5、 编写程序段。用串处理指令,比较两个有10个字符的字符串变量CHR1和CHR2,如果两者全不相同则执行子程序OTHER,否则,顺序执行。6、编写汇编语言源程序: 设在字单元A、B和C中存放有三个数,若三个数都不为0,则求出三个数之和存入字单元D中,若有一个为0,则将其他两个单元也清零。

版权声明:文章由 问百问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.wenbwen.com/article/144213.html
热门文章