汇编语言习题解答

8086/8088汇编语言习题解答第一章、试根据自己使用计算机的经历,列举几个必须使用或最好是使用汇编语言编制程序的事例。

、试完成下列数制间的转换⑴、十进制数转换为8位二进制数十进制:100 对应二进制:01100100B十进制:56 对应二进制:00111000B十进制:111 对应二进制:01101111B十进制: 120 对应二进制:01111000B十进制: 70 对应二进制:01000110B⑵、8位二进制数(无符号数)转换为十进制数二进制:01010101B 对应十进制:85二进制:B 对应十进制:170二进制:B 对应十进制:240二进制:00001111B 对应十进制:15⑶、十进制数转换为十六进制数十进制:40 对应二进制:00101000B十进制:80 对应二进制:01010000B十进制:105 对应二进制:01101001B十进制: 114 对应二进制:01101101B十进制: 207 对应二进制:B、试把下面用补码表示的二进制数转换为对应的十进制真值二进制补码:01111000 对应的十进制值数真值:+120二进制补码:对应的十进制值数真值:-39二进制补码:对应的十进制值数真值:-127二进制补码:对应的十进制值数真值:-120二进制补码:00100111 对应的十进制值数真值:+39二进制补码:对应的十进制值数真值:-16、由键盘输入字符通常都是以该字符的ASCII码形式表示的。

若现在从键盘上输入十六进制数0~F,那么应如何处理才能把十六进制转换为4位二进制数0000~1111.答:将键盘输入的数0~F的ASCII码,每输入一个字符,减去30H后,再存入内存,这样就完成了把从键盘上输入的十六进制ASCII码转换为4位二进制数0000~1111.、试分别判断下列各组数据中哪个数据最大?哪个最小?①、A= B=0,101D C=0,101H②、A=1011B B=1011D C=1011H答:第①组:A=1×21-+1×23-=B=C=1×161-+163-=+=所以A最大,C最小第②组,B最大,A=B最小、现有一个二进制数.若将该数看着是无符号数、原码表示的带符号数、补码表示的带符号数,它对应的十进制数的真值是多少?答:.的无符号数的十进制是:+182;.的原码带符号数的十进制是:-54.补码表示的带符号数的十进制是:+74、下列各组数据均为十进制数,先将各数据转换为补码表示的带符号数,然后用补码的加减运算分别完成下列各小题,并用十六进制数形式回答运算结果。

①、58+36 ②、(-58)+36 ③、58+(-36)④、(-58)+(-36)⑤、58-36 ⑥、(-58)-36 ⑦、58-(-36)⑧、(-58)-(-36)答:①、58+36的运算结果是:00111010+00010100=01001110=01011110②、(-58)+36的运算结果是:+00010100==-000101001③、58+(-36)的运算结果是:00111010+=00010110④、(-58)+(-36)的运算结果是:+=⑤、 58-36的运算结果是:00111010+=00010110⑥、(-58)-36的运算结果是:+=⑦、58-(-36)的运算结果是:00111010+00010100=01001110=01011110⑧、(-58)-(-36)的运算结果是:+00010100==-000101001第二章2.1、试说明8086/8088CPU中有哪些寄存器?各有什么用途?答:寄存器AX、AL:在乘法指令中,存放乘数和乘积;在除法指令中,存放被除数和商;在未组合BCD码运算的校正指令中在某些串操作指令(LODS,STOS,SCAS)中在输入输出令中作数据寄存器寄存器AH:在LAHF指令中作目的寄存器寄存器AL:在组合型BCD码的加减法校正指令中在XLAT指令中作目的寄存器寄存器BX:在XLAT指令中基址寄存器寄存器CX:在循环指令中作循环次数计数器寄存器CL:在移位指令中作移位次数计数器寄存器DX: 在字数据的乘法和除法指令中辅助累加器寄存器SP:在堆栈操作中作堆栈指计寄存器SI:在串操作指令中作源变址寄存器寄存器DI:在串操作指令中作目的变址寄存器2.2、试说明8086/8088CPU中标志寄存器各标志位的意义?答:8086/8088CPU中标志寄存器各标志位的意义是:CF:进位标志PF:奇遇标志AF:辅助进位标志ZF:零值标志SF:符号位标志TF:单步标志IF: 中断允许标志 DF:方向标志OF:溢出标志2.3、哪些操作只能隐含使用某个段寄存器,而不能用其他寄存器替代?哪些操作除隐含使用某个段寄存器外,还可以用其他段寄存器替代?答:在“取指令”、“堆栈操作”、“存目的串”三操作时,只能分别使用隐含段寄存器“CS”、“SS”“ES”,不能用其他寄存器替代;在“取源串”、“以BP作基址”、“存取一般变量”三操作时,除了可分别使用隐含段寄存器“DS”、“SS”“DS外,还可分别使用“CS、SS、ES”,“CS、DS、ES” 、“CS、SS、ES”等进行替代。

2.4、8086/8088系列微机在存储器中寻找存储单元时,逻辑地址由哪两部分组成?答:在8086/8088系列微机在存储器中寻找存储单元时,逻辑地址由段基值和偏移量两部分组成,它们都是16位无符号二进制数。

2.5、设IBM PC微机内存某一单元的物理地址是12345H,试完成下列不同的逻辑地址表示:①、1234H:0005_H ;EA=段基值+DISP=12340H+0005H=12345H②、1200H:0345H ;EA=段基值+DISP=12000H+0345H=12345H2.6、假设某用户程序装入内存后,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部(字单元)物理地址是是多少?2.7、设堆栈段寄存器(SS)=3E4BH,程序中设置堆栈长度为200个字节。

试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。

2.8、设某用户程序(SP)=30H,(AX)=1234H,(DS)=5678H。

如现有两条指令:PUSH AXPUSH DS试问两条指令执行后,图中各单元的数据是多少?(SP)=?答: (SP)=30H-4H=2CH2.9、在IBM-PC微机上,分别进行下列8位二进制数的运算后,标志寄存器中OF、ZF、SF、CF的值各是多少?①、+01010101 ②、+③、0110 ④、00102.10、设(SP)=50HPUSH AXPUSH BXPUSH CX执行上述三条指令后,(SP)= 44H。

2.11、设(SP)=6EHPOPFPOP AX执行上述两条指令后,(SP)= 72H 。

第三章、试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:①、AND AX,0FFH ;立即数寻址②、AND BL,[0FFH] ;直接寻址③、MOV DS,AX ;寄存器寻址④、CMP [SI],CX ;寄存器间接寻址⑤、MOV DS:[0FFH],CL ;带前缀的直接寻址⑥、SUB [BP][SI],AH ;基址变址寻址⑦、ADC AX,0ABH[BX] ;基址寻址⑧、OR AX,-35[BX][DI] ;基址变址寻址⑨、PUSH DS ;寄存器寻址⑩、CMC ;立即数寻址、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。

①、MOV [BX][BP],AX ;错,BX与BP必须二选一②、TEST [BP],BL ;正确③、ADD [SI],DA_BYTE ;错,源目操作数不能同时为存储器④、AND DH,DL ;错,同一寄存器高、低字节不能与⑤、CMP CL,1234H ;正确⑥、SHR [BX][DI],3 ;正确⑦、NOT CX,AX ;错,NOT指令只有一个操作数⑧、LEA DS,35[SI] ;正确⑨、INC CX,1 ;正确⑩、PUSH 45[DI] ;正确、下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态?MOVDL,,86ADDDL,0AAH答:以上两条指令执行后:CF=AF=ZF=SF=OF=、在8086/8088CPU中可用于作地址指针的寄存器有哪些?答:、已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H (CX)=5678H,(BP )=0024H,(SI)=0012H,(DI)=0032H,单元(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH 下各指标令或程序段分别执行后的结果如何?①、MOV CL,20H[DI][SI]②、MOV [BP][DI],CX③、LEA BX,20H[BX][SI]MOV AX,2[BX]④、LDS SI,[BX][DI]MOV [SI],BX⑤、XCHG CX,32H[BX]XCHG AX,[SI]、已知(SS)=0915H,(DS)=0930H,(SI)=0A0H,(DI)=1C0H,(BX)80H,(BP)=470H.现有一指令“MOV AX,OPRD”,若源操作数的物理地址为095C0H,试用4种不同寻址方式该写此指令(要求上述每个已知条件至少要使用一次)。

、已知(DS)=1234H,(SI)=124H,(12464H)=30ABH,(12484H)=464H LEA SI, [SI]MOV AX, [SI]MOV [SI+22H], 1200HLDS SI, [SI+20H]ADD AX, [SI]上述程序执行后:(DS)= ,(SI)= (AX)=、已知(AX)=0A5C6H,(CX)=0F03H,CF=1RCL AX, CLAND AH, CHRCR AX, CL上述三条指令执行后:(AX)=,CF=。

、已知(AX)=0FC77H,(CX)=504H,CF=1SAR AX, CLXCHG CH, CLSHL AX, CL上述三条指令执行后:(AX)=,CF=。

、已知(AX)=1234HMOV BX, AXNEG BXADD AX, BX上述三条指令执行后:(AX)=(BX)=。

、已知(AX)=4321HINC AXNEG AXDEC AXNEG AX上述几条指令执行后:(AX)=、已知(AX)=0A33AH,(DX)=0F0F0HAND AH,DLXOR AL,DHNEG AHNOT AL上述几条指令执行后:(AX)=、已知(AX)=0FF60H, CF=1MOV DX,96XOR DH,0FFHSBB AX,DX上述几条指令执行后:(AX)=,CF=。

合集下载

汇编语言试题及参考答案

汇编语言试题及参考答案

汇编语言试题及参考答案一、选择题(每题2分,共20分)1. 汇编语言中的指令通常由哪两部分组成?A. 操作码和操作数B. 地址和数据C. 指令和数据D. 操作码和地址答案:A2. 以下哪个不是汇编语言中的寻址方式?A. 直接寻址B. 间接寻址C. 立即寻址D. 寄存器寻址答案:B3. 在汇编语言中,以下哪个指令用于将数据从内存加载到寄存器中?A. MOVB. CMPC. ADDD. SUB答案:A4. 汇编语言中,以下哪个指令用于比较两个寄存器的内容?A. MOVB. CMPC. ADDD. SUB答案:B5. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与立即数相加?A. MOVB. CMPC. ADDD. SUB答案:C6. 汇编语言中的条件跳转指令通常使用哪些条件?A. 零、非零B. 正、负C. 溢出、非溢出D. 所有上述条件答案:D7. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容相减?A. MOVB. CMPC. ADDD. SUB答案:D8. 汇编语言中的循环结构通常使用哪种类型的跳转指令?A. 无条件跳转B. 条件跳转C. 直接跳转D. 间接跳转答案:B9. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与内存中的内容相加?A. MOVB. CMPC. ADDD. SUB答案:C10. 汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容进行逻辑与操作?A. ANDB. ORC. NOTD. XOR答案:A二、填空题(每题2分,共20分)1. 在汇编语言中,指令MOV AX, BX的作用是将寄存器________的内容复制到寄存器________中。

答案:BX,AX2. 汇编语言中的指令JMP FAR PTR 100H:200H的作用是跳转到内存地址________。

答案:100H:200H3. 汇编语言中,指令CALL的作用是________。

汇编语言第三版习题答案

汇编语言第三版习题答案

汇编语言第三版习题答案汇编语言是一种低级编程语言,它允许程序员直接控制计算机硬件。

第三版通常指的是某本汇编语言教材的修订版,其中习题答案对于学习者来说非常重要,因为它们可以帮助理解概念并验证自己的编程技能。

在汇编语言的学习过程中,习题通常包括指令集的使用、程序设计、寄存器操作、内存管理、中断处理等。

以下是一些可能的习题答案示例,但请注意,这些答案需要与具体的习题相匹配,并且可能因教材版本和习题内容的不同而有所变化。

示例习题答案习题1:编写一个汇编程序,将AX寄存器的值加1。

答案:```INC AX```习题2:编写一个程序段,将DX寄存器的值移动到AX寄存器。

答案:```MOV AX, DX```习题3:假设有一个数组存储在内存中,数组的起始地址为DS:BX,数组元素为16位整数,编写一个程序段,将数组的第一个元素加到AX 寄存器。

答案:```MOV AX, [BX] ; 将数组的第一个元素移动到AXADD AX, [BX] ; 将数组的第一个元素加到AX```习题4:编写一个程序,实现对一个字符串的逆序存储。

答案:```; 假设字符串以0结尾,存放在内存中,DS:SI指向字符串的起始地址MOV CX, 0 ; 初始化计数器LODSW ; 将字符串的一个字节加载到AX中CMP AX, 0 ; 检查是否为字符串的结束字符JE END_REVERSE ; 如果是,则跳转到结束标签PUSH AX ; 将当前字符压入堆栈INC CX ; 增加计数器JMP SHORT LODSW ; 继续加载下一个字符END_REVERSE:; 现在堆栈中存储了逆序的字符,将它们重新存储到内存中MOV BX, CX ; 将计数器的值移动到BX中MOV CX, BX ; 将BX的值再次移动到CX中,用于字符串的逆序输出POP AX ; 从堆栈中弹出字符STOSW ; 将字符存储到内存中LOOP END_REVERSE ; 重复直到CX为0```习题5:编写一个程序,计算AX寄存器中值的平方。

汇编语言复习题附答案

汇编语言复习题附答案

汇编语言复习题附答案一、选择题1. 汇编语言是一种()。

A. 高级语言B. 机器语言C. 低级语言D. 面向对象语言答案:C2. 在汇编语言中,指令通常由()组成。

A. 操作码和操作数B. 操作数和地址C. 操作码和地址D. 操作码、操作数和地址答案:A3. 汇编语言中的寄存器通常用来()。

A. 存储数据B. 存储指令C. 存储程序D. 存储地址答案:A4. 汇编语言中的指令MOV AX, BX的作用是()。

A. 将AX寄存器的值移动到BX寄存器B. 将BX寄存器的值移动到AX寄存器C. 将AX和BX寄存器的值相加D. 将AX和BX寄存器的值相减答案:B5. 汇编语言中的循环结构通常使用()指令实现。

A. JZB. JNZC. LOOPD. CALL答案:C二、填空题1. 汇编语言中的指令ADD AX, BX表示将AX和BX寄存器的值相加,并将结果存入____寄存器。

答案:AX2. 汇编语言中的指令SUB AX, BX表示将AX寄存器的值减去BX寄存器的值,并将结果存入____寄存器。

答案:AX3. 汇编语言中的指令CMP AX, BX用于比较AX和BX寄存器的值,但不进行存储操作,结果影响____标志。

答案:标志寄存器4. 汇编语言中的指令JMP LABEL用于无条件跳转到标签____处执行。

答案:LABEL5. 汇编语言中的指令PUSH AX将AX寄存器的值压入____。

答案:堆栈三、简答题1. 简述汇编语言与机器语言的区别。

答案:汇编语言是一种低级语言,它使用助记符来表示机器语言的指令,更易于人类理解和编写。

机器语言则是由二进制代码组成的指令集,直接被计算机硬件执行,但对人类来说难以阅读和编写。

2. 描述汇编语言中如何实现条件跳转。

答案:汇编语言中实现条件跳转通常使用条件跳转指令,如JZ(跳转如果零)、JNZ(跳转如果非零)、JMP(无条件跳转)等。

这些指令根据CPU的状态寄存器中的条件码标志来决定是否跳转到指定的标签处执行。

(完整版)第1章_汇编语言基础习题答案

(完整版)第1章_汇编语言基础习题答案

(完整版)第1章_汇编语言基础习题答案第1章汇编语言基础1.1 简答题(1)哪个处理器的指令系统成为Intel 80x86系列处理器的基本指令集?8086(2)ROM-BIOS 是什么?ROM-BIOS是固化在只读存储器中的基本输入输出系统,是PC 软件系统最低层的程序。

(3)什么是通用寄存器?一般指处理器最常使用的整数寄存器,可用于保存整数数据、地址等(4)堆栈的存取原则是什么?采用先进后出FILO或者后进先出LIFO的操作方式。

(5)标志寄存器主要保存哪方面的信息?用于反映指令执行结果或控制指令执行形式。

(6)最高有效位MSB是指哪一位?数据的最高位,例如对8、16、32位数据,MSB依次指D7、D15和D31位(7)汇编语言中的标识符与高级语言的变量和常量名的组成原则有本质的区别吗?没有(8)汇编语言的标识符大小写不敏感意味着什么?表示字母大小写不同、但表示同一个符号(9)在汇编语言源程序文件中,END语句后的语句会被汇编吗?不会(10)汇编时生成的列表文件主要包括哪些内容?主要包含源程序和目标代码。

1.2 判断题1)EAX也被称为累加器,因为它使用最频繁。

对,EAX中的A来自英文累加器(Accumulator)6)处理器的传送指令MOV属于汇编语言的执行性语句对7)汇编语言的语句由明显的4部分组成,不需要分隔符区别。

错,使用了分隔符才有了明显的4部分8)MASM汇编语言的注释用分号开始,不能用中文分号对,源程序中的分隔符以及各种标识符都是英文9)程序终止执行也就意味着汇编结束,所以两者含义相同。

错,两者完全是两个概念1.3 填空题(1)Intel 8086支持( ) 容量主存空间,IA-32处理器支持( ) 容量主存空间。

1MB ,4GB(2)Intel ( ) 处理器将80x86指令系统升级为32位指令系统,()处理器内部集成浮点处理单元、开始支持浮点操作指令。

80386,80486(3)IA-32处理器有8个32位通用寄存器,其中EAX,(),( )和EDX,可以分成16位和8位操作;还有另外4个是( ),( ),( ),和( )。

汇编语言习题及答案

汇编语言习题及答案

汇编语言复习题简答题1.存储器地址为什么要分段?物理地址是如何形成的?2.IBM PC机的寻址方式(与数据有关的寻址方式)有几种?各举一例说明。

3.80x86微机的存储器中存放信息如下图所示。

试读出30022H与30024H字节单元的内容与30021H和30022H字单元的内容。

4.现有(DS)= 2000H,(BX)=0100H,(SI)= 0002H, (20100)= 12H, (20101)=34H, (20102)= 56H, (20103)=78H, (21200)=2AH, (21201)= 4CH, (21202)=B7H, (21203) = 65H,试说明下列各条指令执行完后AX的内容。

1)MOV AX,1200H2)MOV AX,BX3)MOV AX,[1200H]4)MOV AX,[BX]5)MOV AX,1100[BX]5.完成下列各式补码数的运算,并根据结果设置标志位SF,CF,ZF,OF,指出运算结果是否有效1)01001001b+10011101b2)01000001b-10101011b6.有符号定义语句如下:BUFF DB 1,2,3,’123’EBUFF DB 0L EQU EBUFF-BUFF问L的值为多少?为什么?答案:1、IBM PC系列机的字长为16位,能够访问的最大存储空间64KB,而在IBM PC内存为1MB的情况下,访问这1MB的存储空间需要20位。

为了解决字长为16位的机器访问1MB的存储空间,将1MB空间每16B分为一段,共64K段,以16位段地址:16位偏移地址的形式组成,物理地址通过如下方式计算:物理地址=段地址×10h + 偏移地址2.IBM PC机的寻址方式有7种:1)立即寻址:MOV AX, 1234H;2)寄存器寻址:MOV AX, BX;3)直接寻址:MOV AX, [1234H];4)寄存器间接寻址:MOV AX, [BX];5)寄存器相对寻址:MOV AX, 20H[BX];6)基址变址寻址:MOV AX, [BX][SI];7)相对基址变址寻址:MOV AX, 100H[BX][SI];3.解:(30022H)= 12H(30024H) = 56H(30021H) = 12CDH(30022H) = 3412H4.解:(1)MOV AX,1200H解:(AX)=1200H(2)M OV AX,BX解:(AX)= 0100H(3)M OV AX,[1200H]解:物理地址=(DS)×10H+1200H(AX) = 4C2AH(4)M OV AX,[BX]解:物理地址=(DS)×10H+0100H=20100H(AX)=3412H(5)M OV AX,1100[BX]解:物理地址=(DS)×10H+0100H+1100H=21200H(AX)=4C2AH5.(1)01001001b+10011101b解:01001001+ 10011101————————11100110 由此可得:SF=1 CF=0 ZF=0 OF = 0 计算结果有效(2)01000001b-10101011b解:01000001- 10101011————————=> 01000001+ 01010101————————10010110 由此可得:SF=1 CF=1 ZF=0 OF=1 减法计算中,被减数、减数符号相反,结果符号与减数相同,OF=1计算结果无效6.有符号定义语句如下:BUFF DB 1,2,3,’123’EBUFF DB 0L EQU EBUFF-BUFF问L的值为多少?为什么?解:根据数据段的定义,BUFF长度定义为6个字节,分别存放1,2,3,‘1’,‘2’,‘3’,而后紧接着为EBUFF的地址,故L值为6程序题1 MOV BL,64HMOV CL,03HXOR AX,AXAGAIN:ADD AL,BLADC AH,0DEC CLJNZ AGAIN问:(1)该程序段完成的功能是:(2)AX=________。

汇编语言试题及答案

汇编语言试题及答案

汇编语言试题及答案一、选择题1. 汇编语言是一种:A. 高级语言B. 低级语言C. 机器语言D. 标记语言答案:B2. 汇编程序的编译过程包括:A. 预处理、编译、链接B. 编译、链接、运行C. 编译、预处理、链接D. 链接、编译、预处理答案:A3. 下列哪项是汇编语言的指令:A. MOV AX, BXB. int main()C. print "Hello, World!"D. System.out.println("Hello, World!");答案:A二、填空题4. 在汇编语言中,指令______用于将数据从内存传送到寄存器。

答案:MOV5. 汇编语言中的______指令用于实现无条件跳转。

答案:JMP6. 汇编语言中的______指令用于实现条件跳转。

答案:JZ 或 JE(零标志跳转)三、简答题7. 简述汇编语言的特点。

答案:汇编语言是一种低级语言,它非常接近机器语言,通常用于编写硬件操作和系统软件。

其特点是执行效率高,但编程复杂度高,可读性和可移植性较差。

8. 汇编语言与机器语言有何区别?答案:汇编语言是一种符号化的机器语言,它使用助记符代替机器语言中的二进制代码,更易于人类理解和编写。

机器语言则是计算机硬件直接执行的指令集,通常以二进制形式存在。

四、编程题9. 编写一段汇编语言程序,实现将AX寄存器的值加1。

答案:INC AX10. 编写一段汇编语言程序,实现将内存地址[100]处的值与BX寄存器的值相加,并将结果存回内存地址[100]。

答案:MOV AX, [100]ADD AX, BXMOV [100], AX五、论述题11. 论述汇编语言在现代计算机系统中的作用和局限性。

答案:汇编语言在现代计算机系统中主要用于系统底层开发、硬件驱动编写、嵌入式系统编程等领域。

其作用在于能够直接控制硬件,实现高效的资源利用。

然而,由于其复杂度高、可读性差、可移植性低,它在高级应用开发中的使用受到限制。

汇编考试题及答案详解

汇编考试题及答案详解一、选择题(每题2分,共20分)1. 下列哪一项是汇编语言的特点?A. 高级语言B. 面向对象C. 接近硬件D. 自动内存管理答案:C2. 汇编指令MOV AX, [BX]的含义是:A. 将AX寄存器的内容移动到BX寄存器B. 将BX寄存器的内容移动到AX寄存器C. 将内存地址BX指向的内容移动到AX寄存器D. 将AX寄存器的内容存储到内存地址BX指向的位置答案:C3. 下列哪一项不是汇编语言的伪操作码?A. ORGB. DBC. IFD. MOV答案:D4. 在汇编语言中,立即数的寻址方式是:A. 直接寻址C. 间接寻址D. 基址寻址答案:A5. 汇编程序中,用于定义数据的伪操作码是:A. EQUB. ENDC. DBD. DW答案:C6. 汇编语言中,指令JMP FAR PTR LABEL的作用是:A. 跳转到当前段内的LABELB. 跳转到其他段内的LABELC. 跳转到当前段的开始位置D. 跳转到其他段的开始位置答案:B7. 汇编语言中的段寄存器CS的作用是:A. 存储当前代码段的基地址B. 存储当前数据段的基地址C. 存储当前堆栈段的基地址D. 存储当前附加段的基地址答案:A8. 下列哪一项不是汇编指令的寻址方式?B. 寄存器寻址C. 相对寻址D. 绝对寻址答案:C9. 汇编语言中,指令PUSH AX的作用是:A. 将AX寄存器的内容压入堆栈B. 将AX寄存器的内容弹出堆栈C. 将AX寄存器的内容移动到其他寄存器D. 将AX寄存器的内容存储到内存答案:A10. 汇编语言中,指令DIV AX的作用是:A. 将AX寄存器的内容除以AL寄存器的内容B. 将AX寄存器的内容除以AH寄存器的内容C. 将AX寄存器的内容除以DX寄存器的内容D. 将AX寄存器的内容除以立即数答案:A二、简答题(每题5分,共10分)1. 解释汇编语言中的堆栈操作。

答案:堆栈操作是汇编语言中的一种数据结构操作,它遵循后进先出(LIFO)的原则。

汇编习题及解答

选择题(部分习题应多选)1、汇编语言源程序经汇编后不能直接生成(1)。

(A).OBJ文件(B).LST文件(C).EXE文件(D).CRF文件2、运算型指令的寻址和转移型指令的寻址,其不同点在于(2)。

(A)前者取操作数,后者决定程序的转移地址(B)后者取操作数,前者决定程序的转移地址(C)两者都是取操作数(D)两者都是决定程序的转移地址3、JMP WORD PTR [DI]是(3)。

(A)段内间接转移(B)段间间接转移(C)段内直接转移(D)段间直接转移4、JMP FAR PTR ABCD(ABCD是符号地址)是(4)。

(A)段内间接转移(B)段间间接转移(C)段内直接转移(D)段间直接转移5、INC指令不影响(5)标志。

(A)OF (B)CF(C)SF (D)ZF6、条件转移指令JNE的测试条件是(6)。

(A)OF (B)CF(C)SF (D)ZF7、逻辑移位指令SHL用于(7);(A)带符号数乘2 (B)带符号数除2(C)无符号数乘2 (D)无符号数除2而算术移位指令SAL用于(8)。

(A)带符号数乘2 (B)带符号数除2(C)无符号数乘2 (D)无符号数除28、下列程序执行后,请选择正确的结果:10A3H:2000H XOR AL,AL2002H MOV AX,CS2004H MOV SS,AX2006H MOV SP,2F00H2009H MOV DX,2012H200CH PUSH DX200DH CALL 2700H2010H ADD CX,DX2012H HLT10A3H:2700H POP CXRET8.1、(AX)=(9);(A)10A3H (B)2000H(C)2012H (D)2799H8.2、(SP)=(10);(A)2F02H (B)2F00H(C)2EFEH (D)2EFCH8.3、(DX)=(11);(A)2700H (B)2F00H(C)2012H (D)2010H8.4、(CX)=(12);(A)2700H (B)2F00H(C)2010H (D)4024H8.5、ZF=(13);(A)1 (B)0(C)不定(D)-110、对于下列程序段:AGAIN:MOV ES:[DI],ALINC DILOOP AGAIN可用指令(16)完成相同的功能。

(完整版)汇编语言习题详解(全部)(免费)

《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。

汇编语言习题答案

第1章自测练习一、选择题(四选一)1.某个加法运算结果使标志ZF=1,则标志SF为A。

A0 B 1 C 不改变原来的状态 D 不确定2.可以为存储器操作数提供偏移地址的寄存器组是B。

A AX、BX、CX、DXB BX、BP、SI、DIC SP、IP、BP、DXD CS、DS、ES、SS3.8086/8088确定下一条执行指令物理地址的计算表达式为D。

A DS× 16+EAB ES× 16+EAC SS×l6+SPD CS×l6+IP4.某系列微机对存储器分段,如果每个段最多的字存储单元(16位二进制)是32K,那么表示段内字节单元偏移地址的二进制位数应是C位。

A14 B 15 C 16 D 205.十进制数-100的8位二进制数的补码为 D 。

A10011011 B 01100100 C 10011101 D 100111006.下列各个8位二进制数的补码中,绝对值最大的是A。

A10001000 B 11111110 C 00000100 D 000000017.16位有符号数的补码所表示的十进制数的范围是B。

A-32767~+32768 B -32768~+32767C -65535~+65536D 0~655358.对数值83A7H作逻辑非运算后的结果是D。

A83A8H B、73A8H C、7C59H D、7C58H9.指令“mov cx,[bp+16]”的源操作数采用的段寄存器是 B 。

A CSB SSC DSD ES10.指向程序堆栈区的段寄存器是 B 。

A CSB SSC DSD ES11.有效地址是指 C 。

A存储器操作数的物理地址 B 存储器操作数的段地址C 存储器操作数的偏移地址D 立即数的偏移地址12.寄存器间接寻址方式中,操作数在 C 中。

A通用寄存器 B 段寄存器C 主存单元D 堆栈13.指令“mov ax,es:[bx][si]”源操作数的物理地址是D。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档