用一条MASM语句完成要求:程序无条件转移到done标号 |
|
用一条MASM语句完成要求:调用子程序sum |
|
用一条MASM语句完成要求:将ECX寄存器内容与双字属性的变量var内容互换。 |
|
用一条MASM语句完成要求:将寄存器EDX内容减去4578,差值存入EDX。 |
|
用一条MASM语句完成要求:定义双字变量var,初值有两个,依次是:110,120 |
|
用一条MASM语句完成要求:获得变量var的偏移地址,并保存在EBX寄存器。 |
|
用一条MASM语句完成要求:将寄存器EAX最高位改变为0,其他位保持不变。 |
|
用一条MASM语句完成要求:获得var变量的偏移地址,传送给ECX |
|
用一条MASM语句完成要求:将var变量值传送给EAX寄存器 |
|
用一条MASM语句完成要求:将DH内容传送给var双字变量最高字节部分 |
|
用一条MASM语句完成要求:将var双字变量最低字节部分传送给CL |
|
用一条MASM语句完成要求:获得变量var的偏移地址,并保存在EDX寄存器 |
|
用一条MASM语句完成要求:将var双字变量值增加99 |
|
用一条MASM语句完成要求:定义一个字符串,名为string,内容是“hello.” |
|
用一条MASM语句完成要求:将CX内容传送给var双字变量高字部分 |
|
用一条MASM语句完成要求:将寄存器EDX内容加上4578,和值存入EDX |
|
用一条MASM语句完成要求:获得eq858双字变量的偏移地址,传送给EBX |
|
用一条MASM语句完成要求:将EAX寄存器内容赋值给eq858双字变量 |
|
用一条MASM语句完成要求:将eq858双字变量值压入堆栈 |
|
用一条MASM语句完成要求:将eq858双字变量最低字节部分传送给CL |
|
用一条MASM语句完成要求:用寄存器EBX和ESI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 |
|
用一条MASM语句完成要求:用EBX和位移量0B2H的寄存器相对寻址方式把存储器中的一个双字和ECX寄存器的内容相加,并把结果送回存储器中。 |
|
用一条MASM语句完成要求:将eq858双字变量值减少100 |
|
用一条MASM语句完成要求:把EBX寄存器和EDX寄存器的内容相加,结果存入EDX寄存器。 |
|
数据段保存有如下字符串:string byte #39;Do not give up!#39;,0 ;以0结尾的字符串请在代码段,编写统计字符串中字符个数的程序片断(不包括结尾标志0)。 |
|
如下在数据段为变量char预留了26个字母的存储空间。在代码段,编写程序片段,将大写字母A~Z依次存放进去。 .datachar byte 26 dup(?) .code |
|
用一条MASM语句完成要求:将32位变量VARD与数3412H相加,并把结果送回该存储单元中。 |
|
用一条MASM语句完成要求:把数0A0H与EAX寄存器的内容相加,并把结果送回EAX中。 |
|
编写一个程序片段,实现将字符串中大写字母转换为小写字母的功能。已知EBX保存字符串的首地址,ECX保存字符串长度。 |
|
编写一个程序片段,判断AL寄存器是不是数码“0”到“9”之间的ASCII码字符。如果是,则将BL设置为1;否则设置BL为0。 |
|
编写一个程序片段,统计一个双字数据中所包含逻辑“1”的个数,假设这个数据保存在变量dwvar中。 |
|
编写汇编语言程序片段,判断AL寄存器已经保存的字符是否是大写字母,如果是大写转换为小写字母;如果不是大写字母,则不变。 |
|
编制一段程序,把变量var1和var2中较大者存入var3;若两者相等,则把其中之一存入var3中。假设变量存放的是32位无符号数。 |
|
编制一个程序片断,把保存在变量dataA和dataB中较大的数据取出后存入maxC。假设变量存放的是32位有符号数。 |
|
编写一个程序片段,在EDX低4位全为0时,使EAX=1;否则使EAX=-1。 |
|
测试定义为字节单位的变量var的D0位,该位为1使AH=0,为0继续。 |
|
MASM汇编语言中,在数据段如下定义了一个数组,请在代码段为其全部赋予初值1。 .datanumber = 500array byte number dup(?) .code |
|
使用移位、加减等指令实现将EBX内的无符号整数扩大17倍。注意,不允许使用乘法指令,要求有指令功能的简单注释。 |
|
编制一个程序片断,将数组ARRAY所有元素求和,结果保存在变量SUM。假设数组元素为32位整数,个数用常量COUNT表示,且求和过程不会出现溢出或进位。 |
|
指令CDQ将EAX符号扩展到EDX,即:EAX最高为0,则EDX=0;EAX最高为1,则EDX=FFFFFFFFH。请编程实现该指令功能。 |
|
编写8253的初始化程序,使计数器0工作在方式1,按BCD码计数,计数值为3000。已知8253的计数器0~2和控制字I/O地址依次为204H~207H。 |
|
设8253计数器1工作于方式1,按二进制计数,计数初值为400。假设该8253芯片计数器0~3以及控制字I/O地址依次为60H~63H。编写它的初始化程序段。 |
|
编写8253的初始化程序,使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。已知8253的计数器0~2和控制字I/O地址依次为204H~207H。 |
|
设8253计数器0工作于方式0,只需用8位二进制计数,其计数值为50。假设该8253芯片计数器0~3以及控制字I/O地址依次为90H~93H。编写它的初始化程序段。 |
|
在PC机上,并行接口芯片8255A的端口B(I/O地址为62H)被设置为方式0输出,用若干条指令使其中PB4引脚输出低电平,其他引脚的高低电平不变。 |
|
编写8253计数器2的初始化程序,使计数器2工作在方式1,仅用8位二进制计数,计数初值为210。已知8253的计数器0~2和控制字I/O地址依次为300H~303H。 |
|
设8253的计数器1工作于方式5,按二进制计数,计数初值为4000H。假设该8253芯片计数器0~3以及控制字I/O地址依次为200H~203H。编写它的初始化程序段。 |
|
编写8253的初始化程序,使计数器2工作在方式2,计数值为02F0H。已知8253的计数器0~2和控制字I/O地址依次为204H~207H。 |
|
用一条MASM语句完成要求:将数据3721传送给EBX寄存器 |
|
用一条MASM语句完成要求:定义250为字节变量crazy的初值 |
|
用一条MASM语句完成要求:将EAX和EDX内容进行逻辑与,结果保存在EAX |
|
用一条MASM语句完成要求:求反EAX |
|
用一条MASM语句完成要求:程序无条件转移到again标号 |
|
用一条MASM语句完成要求:将EBX的内容减1 |
|
用一条MASM语句完成要求:将EAX和EDX内容进行求和,结果保存在EAX |
|
用一条MASM语句完成要求:定义一个字符串,名为string,内容是“Try it.” |
|
用一条MASM语句完成要求:设置ESI为字符串string的偏移地址 |
|
下段程序执行后,EAX=______________,EBX=______________ mov eax,1357ah add eax,10h sub ebx,ebx |
|
下段程序执行后,EAX= (1) ,EBX= (2) ,CF= (3) mov eax,98h add eax,8080h xor ebx,ebx |
|
下段程序执行后,ESI= (1) ,EDI= (2) ,CF= (3) mov esi,8899h mov edi,esi or esi,0 sub edi,8811h |
|
下段程序执行后,EAX= (1) ,EBX= (2) ,零位标志ZF= (3) 。 mov eax,80h add eax,3 mov ebx,50h sub ebx,8 |
|
下段程序执行后,EBX= (1) ,ECX= (2) ,进位标志CF= (3) 。 mov ebx,2366h mov ecx,ebx sub ebx,1311h and ecx,0 |
|
下段程序执行后,ESI= (1) ,EDI= (2) ,CF= (3) mov esi,3388h add esi,22h xor edi,edi |
|
下段程序执行后,EAX= (1) ,EDX= (2) ,ZF= (3) push dword ptr 8585h pop edx mov eax,edx add eax,105h |
|
下段程序执行后,ESI=____________,EDI=___________ mov esi,9ch mov edi,esi and esi,80h or edi,7fh |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov eax,80h ; EAX=__________ add eax,3 ; EAX=__________,CF=__________ add eax,80h ; EAX=__________,OF=__________ |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov eax,100 ; EAX=__________ add ax,200 ; EAX=__________,CF=__________ |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov eax,100 ; EAX=__________ add al,200 ; EAX=__________,CF=__________ |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov al,7fh ; AL=__________ sub al,8 ; AL=__________,CF=__________ sub al,80h ; AL=__________,OF=__________ |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov esi,10011100b ; ESI=__________H and esi,80h ; ESI=__________H or esi,7fh ; ESI=__________H xor esi,0feh ; ESI=__________H |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov eax,1011b ; EAX=__________B rol eax,2 ; EAX=__________B rcr eax,1 ; EAX=__________B or eax,3 ; EAX=__________B |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov eax,1010b ; EAX=__________B shr eax,2 ; EAX=__________B shl eax,1 ; EAX=__________B and eax,3 ; EAX=__________B |
|
给出如下每条指令执行后目的操作数的结果,并指出其源操作数的寻址方式。 .datadvar dword 3721h,4832h,5630h ;假设该变量的存储器地址是40040H .code mov eax,dvar ;EAX=______________,源操作数的寻址方式是_____________________ mov ebx,offset dvar ;EBX=______________,源操作数的寻址方式是_____________________ mov esi,[ebx] ;ESI=______________ |
|
处理器执行如下程序片断,说明每条指令(和标志)的执行结果: mov edx,0f4h ; EDX=______________ sar edx,2 ; EDX=______________,CF=_____________ |
|
填写下面指令的执行结果。 mov esi,9eh mov edi,esi and esi,80h ; ESI=____________H or edi,7fh ; EDI=____________H |
|
给出如下指令执行后目的操作数的结果,并指出其源操作数的寻址方式。 .datadvar dword 3721h,4832h,5630h ;假设该变量的存储器地址是40040H .code mov edx,100 ;EDX=______________,源操作数的寻址方式是_____________ mov esi,[ebx] ;目的操作数的寻址方式是__________,源操作数的寻址方式是__________ mov edi,[ebx+8] ;源操作数的寻址方式是__________ |
|
填写下面指令执行的结果。 .dataarray dword 616h,727h,838h ;假设该变量的存储器地址是40100H .code mov esi,array+4 ;ESI=______________ mov edi,offset array ;EDI=______________ mov edx,[edi] ;EDX=______________ |
|
填写下面指令的执行结果。 mov eax,3721h add eax,9 ; EAX=____________H mov ebx,50h sub ebx,8 ; EBX=____________H,ZF=________ |
|
填写下面指令的执行结果。 mov ebx,3721h add ebx,7 ; EBX=____________H sub ebx,8 ; EBX=____________H or ebx,80h ; EBX=____________H |
|
填写下面指令执行的结果。 .dataarray dword 616h,727h,838h ;假设该变量的存储器地址是40100H .code push array+8 ;array+8=______________ pop ecx ;ECX=______________ |
|
给出下列指令执行后的结果。 mov eax,16H mov ebx,eax ;EBX=____________H shl eax,2 ;EAX=____________H add eax,ebx ;EAX=____________H |
|
给出下列指令执行后的结果。 mov edx,13547hadd edx,23h ; EDX=______________,OF=__________xor edx,edx ; EDX=______________,CF=__________ |
|
如下程序段将EAX和EBX中有符号数的较大值存放在DMAX变量中,请补充完整: cmp eax,ebx ___________ next _________________next: mov dmax,eax |
|
填写下面指令的执行结果(十六进制表达)。 mov eax,1355ah ; EAX=______________H add eax,14h ; EAX=______________H sub ebx,ebx ; EBX=______________H |
|
如下子程序实现数组元素求和,EBX指向一个数组,数组元素为8位数据,ECX保存数据个数。请补充完整。checksum proc xor al,alagain: add al,[ebx] (1) (2) again (3)checksum endp |
|
如下程序片段将EAX和EBX中无符号数的较小值存放在DWMIN变量中,请补充完整: cmp eax,ebx (1) next (2) next: mov dwmin,eax |
|
已知如下子程序中,EBX指向一个数组,数组元素为8位数据,ECX保存数据个数。为每个语句加上注释、说明其功能,并给出整个子程序所完成的功能。checksum proc xor al,alagain: add al,[ebx] inc ebx loop again retchecksum endp |
|
如下程序片段统计以0结尾的字符串中字符个数,请补充完整。 ; 数据段string byte 'Do what you can do.',0 ; 代码段 xor ebx,ebx again: cmp string[ebx],0 jz (1) inc (2) jmp (3)done: … |
|
什么是主机与外设进行数据交换的程序查询方式? |
|
主机与外设进行数据交换有哪几种常用方式。 |
|
I/O地址(端口)的统一编址有什么特点? |
|
什么是IA-32处理器的除法错中断?什么情况下会出现该中断?请给出一个实例。 |
|
简述中断传送的一般工作过程。 |
|
给出4种主机与外设进行数据传送方式的名称。 |
|
解释中断概念:中断识别、中断优先权、中断嵌套。 |
|
8253芯片需要几个I/O地址,各用于何种目的? |
|
简述DMA传送的一般工作过程。 |
|
什么是DMA传送,什么是DMA传送的DMA读和DMA写? |
|
什么是主机与外设进行数据交换的DMA传送? |
|
8253芯片每个计数通道与外设接口有哪些信号线,每个信号的用途是什么? |
|
标志寄存器主要保存哪方面的信息?执行了一条加法指令后,发现ZF=1,说明结果是什么? |
|
什么是标志?什么是IA-32处理器的状态标志、控制标志和系统标志? |
|
说明标志ZF的含义,何时为0,何时为1? |
|
IA-32处理器有一个CF标志,它是如何定义的?并给出3条影响该标志的指令。 |
|
使用MASM汇编程序,在数据段有一个语句“byte 37h,21,’no’”,它将使处理器为其分配多少个字节的主存空间?从低地址开始每个地址单元的内容依次是什么? |
|
使用MASM汇编程序,在数据段有一个语句“xyz byte 56h,23,’ab’”,它将使变量xyz占用多少个字节的主存空间?从低地址开始每个地址单元的内容依次是什么? |
|
举例说明什么是Intel 80x86处理器数据存储的小端方式(Little Endian)? |
|
使用二进制8位表达无符号整数,257有对应的编码吗?数值500,能够作为字节变量的初值吗?为什么? |
|
在MASM中,字符“'F'”和数值46H作为MOV指令的源操作数有区别吗?为什么? |
|
为什么可以把指令“MOV AX, (34+67H)*3”中的数值表达式看成是常量? |
|
为什么说“XCHG EDX,CX”是一条错误的指令? |
|
都是获取偏移地址,为什么指令“LEA EBX, [ESI]”正确,而指令“MOV EBX, OFFSET[ESI]”就错误? |
|
INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数? |
|
乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算? |
|
大小写字母转换使用了什么规律? |
|
说明如下ADD指令执行后,标志CF、ZF、SF、OF和PF的状态依次是什么? mov al,89h add al,al |
|
数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码0DH和0AH分别对应什么控制字符? |
|
执行如下程序片断后,CMP指令分别使得5个状态标志CF、ZF、SF、OF和PF为0还是为1? mov eax,20h cmp eax,80h |
|
处理器执行指令“xor eax,eax”后,标志CF、ZF、SF、OF和PF的状态依次是什么? |
|
利用ADD指令的源操作数,各举一个指令实例说明什么是立即数寻址、寄存器寻址和存储器直接寻址。 |
|
处理器的基本指令类型有数据传送、算术运算、逻辑运算、移位、流程控制等,以IA-32指令系统为例,对上述5种类型的指令各给出两个指令实例。 |
|
执行如下程序片断后,CMP指令会使得哪些条件转移指令指令Jcc的条件成立、发生转移? mov eax,20h cmp eax,80h |
|
什么是JMP指令的近(near)转移和远(far)转移? |
|
什么是奇偶校验中的奇校验和偶校验? |
|
是什么特点决定了目标地址的相对寻址方式应用最多? |
|
子程序采用堆栈传递参数,为什么要特别注意堆栈平衡问题? |
|
为什么判断无符号数大小和有符号大小的条件转移指令不同? |
|
处理器有哪4种最基本的总线操作(周期)?处理器8086有3个基本读写引脚:M/IO*、WR*和RD*(其中*号表示低电平有效),说明它们在进行这4种基本总线操作时的高低电平状态。 |
|
参数传递的“传值”和“传址”有什么区别? |
|
ISA总线的时钟频率是8MHz,每2个时钟可以传送一个16位数据,计算其总线带宽。 |
|
EISA总线的时钟频率是8MHz,每2个时钟可以传送一个32位数据,计算其总线带宽。 |
|
处理器通过总线与存储器或外设进行数据交换,所以总线设计有4种最基本的总线操作(周期),请问是哪4种,表示怎样进行交换? |
|
8086处理器在最下组态有哪些基本的读写控制引脚信号,各是什么含义? |
|
为什么称处理器的数据总线是双向的? |
|
8086处理器的输入控制信号有RESET,HOLD,NMI和INTR,其含义各是什么? |
|
什么是微机的系统总线?一般将总线信号进一步分为哪3组总线? |
|
什么是指令周期、总线周期和时钟周期? |
|
半导体随机读写存储器有两类SRAM和DRAM,比较它们的主要特点。 |
|
在半导体存储器件中,什么是RAM?SRAM和DRAM有什么区别? |
|
简述高性能存储系统的层次结构及各层存储部件的特点。 |
|