用一条MASM语句完成其要求:定义具有100个元素的数组RAYS,并全部赋予初值350 |
|
用一条MASM语句完成其要求:将45H,0F000H,89H存放在变量XYZ的存储单元中。 |
|
用一条MASM语句完成其要求:预留100个字节单元的存储空间,用变量名BUFFER表示 |
|
用一条MASM语句完成其要求:将字符串“How are you !”存入变量fourmsg |
|
用一条MASM语句完成其要求:将CX减1 |
|
用一条MASM语句完成其要求:取字符串变量MSG的首地址送BX |
|
用一条MASM语句完成其要求:定义250为字节变量crazy的初值 |
|
用一条MASM语句完成其要求:字变量twoword依次存放数据3721h、10h、100、4936h |
|
用一条MASM语句完成其要求:将变量VARS逻辑左移一位 |
|
用一条MASM语句完成其要求:以fivemulti为首地址,连续存放字节数据:2个23h,5个字符“A”,25个预留单元 |
|
用一条MASM语句完成其要求:将SI压入堆栈 |
|
用一条MASM语句完成其要求:将4567按照压缩BCD码形式存放在threebcd单元 |
|
用一条MASM语句完成其要求:将数据3721传送给BX寄存器 |
|
用一条MASM语句完成其要求:将寄存器DX内容减去4578,差值存入DX |
|
用一条MASM语句完成其要求:将堆栈顶部内容弹出送字变量STKW |
|
用一条MASM语句完成其要求:将数据56h、0b3h、100依次存放在字节变量bvar中 |
|
用一条MASM语句完成其要求:调用子程序sum |
|
用一条MASM语句完成其要求:将立即数4567传送给DX寄存器。 |
|
用一条MASM语句完成其要求:字变量wvar依次存放数据3721h、100、49h、0 |
|
用一条MASM语句完成其要求:为字节量数组array预留50个存储单元 |
|
用一条MASM语句完成其要求:交换si和di各自的内容。 |
|
用一条MASM语句完成其要求:my2b为用十进制数表示的字节变量:20 |
|
用一条MASM语句完成其要求:my1b为字符串变量:Personal Computer |
|
用一条MASM语句完成其要求:my4b为用二进制数表示的字节变量:20 |
|
用一条MASM语句完成其要求:my3b为用十六进制数表示的字节变量:20 |
|
用一条MASM语句完成其要求:把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。 |
|
用一条MASM语句完成其要求:用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 |
|
用一条MASM语句完成其要求:my5w为20个未赋值的字变量 |
|
用一条MASM语句完成其要求:my6c为100的常量 |
|
用一条MASM语句完成其要求:把数0A0H与AX寄存器的内容相加,并把结果送回AX中。 |
|
用一条MASM语句完成其要求:用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。 |
|
用一条MASM语句完成其要求:将16位变量VARW与数3412H相加,并把结果送回该存储单元中。 |
|
使用MASM汇编语言编写一个程序片段,统计以0结尾的字符串包含的字符个数(不包括结尾字符0),结果保存在AX寄存器。假设数据段已经如下定义了该字符串:string db #39;Everything is Possible.#39;,0 |
|
用汇编语言编制一个程序片段,把变量varX和varY中较大者存入varZ;若两者相等,则把其中之一存入vzrZ中。假设变量是16位有符号数。 |
|
使用MASM汇编语言编写一个程序片段,将一个字符串中的小写字母转换为大写字母保存于原处。假设数据段已经如下定义了该字符串: msg db #39;You can do it. #39; |
|
在数据段已经给字节变量char预留了26个单元的空间,现要求编写程序片段,实现将大写字母A~Z依次存放进去的功能。 ;数据段 char db 26 dup(?) ;代码段 |
|
编写一个程序片段:有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出)存于原处。 |
|
编写一个程序片段,判断寄存器AL中的字符是否为“0~9”之间的字符。如果是,则设置AH1,否则设置AH=0。 |
|
请使用移位和加减法指令编写一个程序片段计算:AX×21(寄存器AX内容乘以21),假设乘积不超过16位。 |
|
编写一个程序片段,在DX高4位全为0时,使AX = 0;否则使AX = -1。 |
|
编写一个计算字节校验和的子程序。所谓“校验和”是指不记进位的累加,常用于检查信息的正确性。主程序提供入口参数,DS:BX=数组的段地址:偏移地址,CX=元素个数。子程序用AL回送求和结果这个出口参数。 |
|
请按如下说明编写子程序:子程序功能:把用ASCII码表示的两位十进制数转换为压缩BCD码入口参数:DH=十位数的ASCII码,DL=个位数的ASCII码出口参数:AL=对应BCD码 |
|
编程中经常要记录某个字符出现的次数。现编程记录如下数据段定义的字符串(以0结尾)中空格出现的次数,结果保存在SPACE单元。 ;数据段 string db #39;Do you have fun with Assembly ?#39;,0 ;以0结尾的字符串 space dw ? |
|
用一条MASM语句完成其要求:将数据56h、78、0b3h、100依次存放在字节变量onebyte中 |
|
用一条MASM语句完成其要求:将CX寄存器内容与字属性的变量var内容互换 |
|
用一条MASM语句完成其要求:将AX和DX内容进行逻辑或,结果保存在AX |
|
用一条MASM语句完成其要求:将寄存器AX最低位改变为0,其他位保持不变 |
|
数据段有如下定义的变量: var dw 3721h 说明代码段如下指令执行后目的操作数的结果,并指出其源操作数的寻址方式 mov bx, var ; BX= (1) ,源操作数的寻址方式是 (2) mov cx, bx ; CX= (3) ,源操作数的寻址方式是 (4) |
|
下段程序执行后,AX=(1),DX=(2) ,CF=(3) mov ax,8585h push ax pop dx add ax,104h |
|
下段程序执行后,BX= (1) ,CX= (2) 。 mov bx,135ah add bx,14h sub cx,cx |
|
已知如下程序片段执行前AX=4567H,则执行后,AH= (1) ,AL= (2) 。 mov cl,4 shl ah,cl and al,0fh or al,ah |
|
下列程序执行后,SI=______,DI=_______。 mov bx,0100h mov si,0210h lea di,[bx+si] |
|
已知程序执行前AX=4567H,下列程序执行后,AX=_____,CF=_____。 mov cl,4 shl ah,cl and al,0fh or al,ah |
|
假设BX=E3H,说明如下各条指令单独执行后BX的结果(用十六进制表达)。 (1) ADD BX, 6 ; BX =(1) (2) AND BX, 0 ; BX =(2) (3) SUB BX, 10 ; BX =(3) |
|
下段程序执行后,DX=(1),标志位CF=(2)。 mov dx,0f3h shr dx,1 |
|
下列程序执行后,SI= (1) ,DI= (2) 。 mov bx,0100h mov si,0210h lea di,[bx+si] |
|
下列程序执行后,AL= (1) ,标志位CF= (2) 。 mov al, 30 sub al, 20 |
|
执行如下程序片断,说明每条指令的执行结果: mov ax,80h ;AX=__________ add ax,3 ;AX=__________,CF=__________ add ax,80h ;AX=__________,OF=__________ |
|
执行如下程序片断,说明每条指令的执行结果: mov ax,100 ;AX=__________ add ax,200 ;AX=__________,CF=__________ mov ax,100 add al,200 ;AX=__________,CF=__________ |
|
执行如下程序片断,说明每条指令的执行结果: mov al,7fh ;AL=__________ sub al,8 ;AL=__________,CF=__________ sub al,80h ;AL=__________,OF=__________ |
|
执行如下程序片断,说明每条指令的执行结果: mov si,10011100b ;SI=__________H or si,7fh ;SI=__________H xor si,0feh ;SI=__________ |
|
执行如下程序片断,说明每条指令的执行结果: mov si,10011100b ;SI=__________H and si,80h ;SI=__________H or si,7fh ;SI=__________H |
|
执行如下程序片断,说明每条指令的执行结果: mov ax,1011b ;AX=__________B mov cl,2 rol ax,cl ;AX=__________B,CF=__________ rcr ax,1 ;AX=__________B,CF=__________ |
|
执行如下程序片断,说明每条指令的执行结果: mov ax,1010b ;AX=__________B mov cl,2 shr ax,cl ;AX=__________B,CF=__________ shl ax,1 ;AX=__________B,CF=__________ |
|
如下程序片段将BX中最低位显示出来,请填空补充完整: shr bx,1 (1)next0 mov dl, #39;0#39; ; 显示0 (2) next0: mov dl, (3) ; 显示1 next1: mov ah,2 ; 调用2号DOS功能,实现显示 int 21h |
|
执行如下程序片断,说明每条指令的执行结果: xor ax,ax ;AX=__________,CF=OF=__________ ;ZF=__________,SF=__________,PF=_________ |
|
如下程序段将SI和DI中有符号数的较小值存放在WMIN变量中,填写空白补充完整: cmp si,di (1) next (2) next: mov wmin,si |
|
说明如下程序片段实现的功能,程序执行后AX寄存器内容是多少? mov ax,0 mov bx,12 mov cx,5 again: sub bx,2 add ax,bx loop again |
|
如下程序片段判断AL中的字符是否是小写字母。如果是则转换为大写字母,否则不变,请填写空白,将程序片段补充完整: cmp al,(1) jb done cmp al,#39;z#39; (2) sub al,20h done: |
|
已知如下子程序中,BX指向一个数组,数组元素为8位数据,CX保存数据个数。为每条语句加上注释、说明其作用,并给出整个子程序所完成的功能。 checksum proc ;(1) xor al,al ;(2) again: add al,[bx] ;(3) inc bx ;(4) loop again ;(5) ret ;(6) checksum endp ;(7) |
|
如下程序片段统计以0结尾的字符串中字符个数,请填空补充完整。 ; 数据段 string db #39;Do what you can do.#39;,0 ; 代码段 xor bx,bx again: cmp string[bx],0 jz (1) inc bx (2) done: … |
|
执行下面的程序片段后,AX=(1),CX=(2)。 mov cx,3 mov ax,15 next: sub ax,cx loop next |
|
阅读如下程序,为没有注释的语句添加注释,指出其功能或作用,并说明这个程序运行后显示的结果。 ;数据段 num db 6,7,7,8,3,0,0,0 ;欲显示的数字 tab db #39;67783000#39; ;对应互换的ASCII码 ;代码段 mov cx,lengthof num ;(1) mov si,offset num ;(2) mov di,offset tab ;(3) again: mov dl,[si] ;(4) xchg dl,[di] ;(5) mov [si],dl ;(6) mov ah,2 ;2号功能调用 int 21h ;显示AL中的字符 add si,1 ;(7) add di,1 ;(8) loop again ;循环处理 |
|
下面程序片段将数组ARRAY1的每个元素加500,转存在数组ARRAY2。填空补充完整: ;数据段 array1 dw 1,2,3,4,5,6,7,8,9,10 array2 dw 10 dup(?) ;代码段 mov cx,lengthof array1 mov bx,0 again: mov ax,array1[bx] add ax,500 mov (1) add bx, (2) loop again |
|
阅读如下程序,为编号(1)~(6)的语句添加注释,指出其功能或作用,并说明这个程序运行后显示的结果。 ;数据段 num db 6,7,7,8,3,0,0,0 ;欲显示的数字 tab db #39;67783000#39; ;对应互换的ASCII码 ;代码段 mov cx,lengthof num ;(1) mov si,0 ;(2) again: mov dl,num[si] ;(3) xchg dl,tab[si] ;(4) mov num[si],dl ;(5) mov ah,2 ;2号功能调用 int 21h ;显示AL中的字符 add si,1 ;(6) loop again ;循环处理 |
|
乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算? |
|
大小写字母转换使用了什么规律? |
|
说明如下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 ax,20h cmp ax,80h |
|
处理器执行指令“xor ax,ax”后,标志CF、ZF、SF、OF和PF的状态依次是什么? |
|
利用ADD指令的源操作数,各举一个指令实例说明什么是立即数寻址、寄存器寻址和存储器直接寻址。 |
|
处理器的基本指令类型有数据传送、算术运算、逻辑运算、移位、流程控制等,以8086指令系统为例,对上述5种类型的指令各给出两个指令实例。 |
|
执行如下程序片断后,CMP指令会使得哪些条件转移指令指令Jcc的条件成立、发生转移? mov ax,20h cmp ax,80h |
|
什么是JMP指令的近(near)转移和远(far)转移? |
|
子程序采用堆栈传递参数,为什么要特别注意堆栈平衡问题? |
|
参数传递的“传值”和“传址”有什么区别? |
|
什么是奇偶校验中的奇校验和偶校验? |
|
为什么判断无符号数大小和有符号大小的条件转移指令不同? |
|
处理器指令代码由哪两个部分组成,各自的含义是什么? |
|
说明“AND AX,BX”和“TEST AX,BX”指令功能上的相同和不同之处。 |
|
说明计算机系统的硬件组成及各部分作用。 |
|
8086编程时使用逻辑地址,举例说明其如何转换成物理地址? |
|
什么是数据的立即数寻址和寄存器间接寻址?指出如下使用立即数寻址和寄存器间接寻址的指令(MAXint是一个符号常量、定义为100,var是一个变量)。(1) cmp cx, MAXint (2) mov bx, var(3) mov cx, [si] (4) shl word ptr [bx], cl(5) lea bx, var (6) test [di], byte ptr 0 |
|
说明8086中逻辑地址的组成。假设DS=2100H,BX=0200H,则指令“mov ax,[bx]”访问的存储器操作数所在的物理地址是什么? |
|
8086编程使用逻辑地址,说明其组成形式及各部分含义。 |
|
8086支持在主存中建立堆栈段,设计有将数据传送到堆栈和从堆栈中取出数据的两种指令,分别给出一个指令实例,并说明其功能。 |
|
什么是堆栈,它的基本操作有哪两个,对应哪两种指令? |
|
在数据段书写语句“dw 2345h,12h”,它占用多少个主存字节单元?从低地址开始依次写出每个字节单元的内容(可以用十六进制形式表达)。 |
|
说明“SUB AX,BX”和“CMP AX,BX”指令功能上的相同和不同之处。 |
|
对于多字节数据保存在以字节编址的主存中,存在着字节顺序和对齐地址边界问题。说明8086采用的小端存储方式和对齐地址边界的好处。 |
|
MASM汇编语言中,下面哪些是程序员可以使用的自定义标识符,哪些是不可使用的符号、并说明使用的原因。Again,@data,h_ascii,small |
|
MASM汇编语言中,下面哪些是程序员可以使用的自定义标识符,哪些是不可使用的符号、并说明使用的原因。FFH,DS,next,6364b |
|
将如下8086的逻辑地址用其物理地址表达(均为十六进制形式):(1) 40H∶17H (2) B821H∶4567H |
|
将如下8086的逻辑地址用其物理地址表达(均为十六进制形式):(1) FFFFH∶0H (2)2000H∶4500H |
|
完成如下转换要求:(1)如果“EFH”是十六进制数表示的无符号整数,请转换为十进制形式的真值。(2)将十进制数真值“-57”,用8位二进制补码表示。(3)给出十六进制数据“9876H-ABCDH”的运算结果,并说明是否有借位。 |
|
完成如下转换要求:(1)如果“5EH”是十六进制数表示的无符号整数,请转换为十进制形式的真值。(2)将十进制数真值“-127”,用8位二进制补码表示。(3)给出十六进制数据“C051H-1234H”的运算结果,并说明是否有借位。 |
|
完成如下转换要求:(1)如果“0H”是十六进制数表示的无符号整数,请转换为十进制形式的真值。(2)将十进制数真值“127”,用8位二进制补码表示。(3)给出十六进制数据“F034H+5AB0H”的运算结果,并说明是否有进位。 |
|
完成如下转换要求:(1)如果“FFH”是十六进制数表示的无符号整数,请转换为十进制形式的真值。(2)将十进制数真值“0”,用8位二进制补码表示。(3)给出十六进制数据“1234H+7802H”的运算结果,并说明是否有进位。 |
|
举例说明CF和OF标志的差异。 |
|
说明下列指令中源操作数的寻址方式?假设VARW是一个字变量。(1)mov dx,bx(2)mov dx,[bx](3)mov dx,[bx+1234h] |
|
说明下列指令中源操作数的寻址方式?假设VARW是一个字变量。(1)mov dx,1234h(2)mov dx,varw(3)mov dx,[bx+di] |
|
定义常量NUM,其值为5;数据段中定义字数组变量DATALIST,它的头5个字单元中依次存放-10,2,5和4,最后1个单元初值不定。 |
|
判断下列程序片段跳转的条件 cmp cx,64h jb there |
|
判断下列程序片段跳转的条件 test al,10000001b jnz here |
|
判断下列程序片段跳转的条件 xor ax,1e1eh je equal |
|
什么是汇编语言?汇编语言程序和汇编程序有什么区别? |
|
说明高级语言和汇编语言(机器语言)的区别。 |
|
什么是8086中的逻辑地址和物理地址? |
|
8086处理器有哪三类基本段,各是什么用途? |
|
给出汇编语言执行性语句和说明性语句的一般格式。 |
|
汇编语句有哪两种,每个语句由哪4个部分组成? |
|
汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 |
|
标志寄存器主要保存哪方面的信息?执行了一条加法指令后,发现ZF=1,说明结果是什么? |
|
8086标志寄存器中有一个状态标志用符号ZF表示,说明其含义。执行加减指令后,什么情况下这个标志为0,什么情况下这个标志为1? |
|
8086处理器有一个CF标志,它是如何定义的?并给出3条影响该标志的指令。 |
|
使用MASM汇编程序,在数据段有一个语句“db 37h,21,’no’”,它将使处理器为其分配多少个字节的主存空间?从低地址开始每个地址单元的内容依次是什么? |
|
使用MASM汇编程序,在数据段有一个语句“xyz db 56h,23,’ab’”,它将使变量xyz占用多少个字节的主存空间?从低地址开始每个地址单元的内容依次是什么? |
|
举例说明什么是8086处理器数据存储的小端方式(Little Endian)? |
|
在MASM中,字符“'F'”和数值46H作为MOV指令的源操作数有区别吗?为什么? |
|
使用二进制8位表达无符号整数,257有对应的编码吗?数值500,能够作为字节变量的初值吗?为什么? |
|
为什么说“XCHG DX,CL”是一条错误的指令? |
|
为什么可以把指令“MOV AX, (34+67H)*3”中的数值表达式看成是常量? |
|
INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数? |
|
都是获取偏移地址,为什么指令“LEA BX, [SI]”正确,而指令“MOV BX, OFFSET[SI]”就错误? |
|
在数据段已经给字节变量char预留了26个单元的空间,现要求编写程序片段,实现将大写字母A~Z依次存放进去的功能。 ;数据段 char db 26 dup(?) ;代码段 |
|
用汇编语言编制一个程序片段,把变量varX和varY中较大者存入varZ;若两者相等,则把其中之一存入vzrZ中。假设变量是16位有符号数。 |
|
使用MASM汇编语言编写一个程序片段,统计以0结尾的字符串包含的字符个数(不包括结尾字符0),结果保存在AX寄存器。假设数据段已经如下定义了该字符串: string db ˊEverything is Possible.ˊ,0 |
|
使用MASM汇编语言编写一个程序片段,将一个字符串中的小写字母转换为大写字母保存于原处。假设数据段已经如下定义了该字符串: msg db ˊYou can do it. ˊ |
|