汇编语言作业及参考答案
(0413)《汇编语言》网上作业题及答案
[0413]《汇编语言》第一次作业[单选题]数据传送指令对标志位的影响为( )A:都不影响B:都影响C:除了SAHF,POPF,其它均不影响D:除了控制标志位,其它均不影响参考答案:D[单选题]比较指令CMP( )A:专用于有符号数比较B:专用于无符号数比较C:专用于串比较D:不区分比较的对象是有符号数还是无符号数参考答案:D[单选题]若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为( ) A:SF=0,ZF=0,CF=1,OF=1,PF=0B:SF=1,ZF=0,CF=1,OF=0,PF=1C:SF=0,ZF=0,CF=0,OF=1,PF=0D:SF=1,ZF=0,CF=1,OF=1,PF=1参考答案:C[单选题]能定义ASCII码字符串的数据定义语句有( )A:DB,DW,DD,DQ,DTB:DB,DW,DDC:DB, DWD:DB参考答案:D[单选题]8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( ) A:段内的任何地方B:距该指令偏移地址为-32768~+32767的地方C:距该指令偏移地址为-128~+127的地方D:段外参考答案:A[单选题]中断矢量表中存放的是( )A:中断类型号B:断点地址C:中断服务程序D:中断服务程序入口地址参考答案:D[单选题]在指令 MOV AX,[1000H]中,源操作数的寻址方式为( )A:立即寻址B:直接寻址C:段内间接寻址D:寄存器寻址参考答案:B[单选题]设字长N=16,有符号数7AE9H的补码表示为( )A:9EA7HB:76C4HC:8417HD:7AE9H参考答案:D[单选题]比较有符号数3260H与0B425H的大小关系为( )A:相等B:小于C:大于D:不能比较参考答案:C[单选题]指令JMP WORD PTR [BX][DI]中转移的目标地址为( )A:16 d x(DS)+(BX)+(DI)B:16d x(ES)+(BX)+(DI)C:16d x(SS)+(BX)+(DI)D:16d x(CS)+(BX)+(DI)参考答案:A第二次作业[单选题]使用DOS系统功能调用时,使用的软中断指令是()A:INT 21B:INT 10HC:INT 16HD:INT 21H参考答案:D[单选题]DA1 DW‘AB',‘CD',‘EF',‘GH'() ...... MOV AX,DA1+3 A:‘EF’B:‘CD’C:‘BC’D:‘FC’参考答案:D[单选题]设AL=0AH,下列指令执行后能使AL=05H的是()A:NOT ALB:AND AL,0FHC:XOR AL,0FHD:OR AL,0FH参考答案:C[单选题]在下列串操作指令中,同时使用源串和目的串地址指针的指令是()A:STOSWB:LODSWC:SCASWD:CMPSW参考答案:D[单选题]比较两个带符号的数A、B,当A=B时程序转移,测试的条件为()A:ZF=1B:ZF=0C:SF=1D:SF=0参考答案:A[单选题]下面程序段执行后,AL中的内容是() MOV AX,8833H ADD AL,AH DAA A:21B:21HC:0C1HD:0DDH参考答案:B[单选题]REPZ CMPSW指令,重复执行的终止条件是()A:CX=0或ZF=0B:CX=0且ZF=0C:CX=0或ZF=1D:CX=0且ZF=1参考答案:A[单选题]要实现使BETA的值为56,应采用语句为()A:BETA DB 56B:BETA DB 56HC:BETA EQU 56D:BETA EQU 56H参考答案:C[单选题]汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()A:名字的第一个字符可以是大写英文字母及小写英文字母B:名字的第一个字符可以是字母、数字及、@、_C:名字的有效长度≤31个字符D:在名字中不允许出现$参考答案:B[单选题]检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在"CMP AL,BL”指令后应跟的分支指令是()A:JNC LOP1B:JA LOP1C:JC LOP1D:JGE LOP1参考答案:A第三次作业[单选题]当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是()A:JLEB:JNLC:JNLED:JL参考答案:C[单选题]下面的数据传送指令中,错误的操作是()A:MOV SS:[BX+DI],1000HB:MOV DX,1000HC:MOV WORD PTR[BX],1000HD:MOV DS,2000H参考答案:D[单选题]将数据5618H存放在存储单元中的伪指令是( )A:DATA1 DW 1856HB:DATA1 DB 18H,56HC:DATA1 EQU 5618HD:DATA1 DB 18H,00H,56H,00H参考答案:B[单选题]MOV SP,3210H PUSH AX 执行上述指令序列后,SP寄存器的值是( )A:3211HB:320EHC:320FHD:3212H参考答案:B[单选题]为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( )A:INC CX JZ MINUSB:SUB CX,OFFFFH JZ MINUSC:AND CX,OFFFFH JZ MINUSD:XOR CX,OFFFFH JZ MINUS参考答案:C第四次作业[论述题]将AX寄存器中的16位数分成四组,每组四位,然后把这四组数分别放在AL、BL、CL和DL中。
汇编语言试题及参考答案
汇编语言试题及参考答案一、选择题(每题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寄存器中值的平方。
汇编作业与答案
汇编语言作业一一、单项选择题第18题〔1分〕当运算结果的最高位为1时,标志位〔 3 〕。
A. CF=1B. OF=1C. SF=1D. ZF=1第19题〔1分〕8086CPU的寄存器中,通常用作数据寄存器,且隐含用法为I/O端口的间址寄存器的是〔4〕。
A. AXB. BXC. CXD. DX第22题〔1分〕设(21b24H)=39H,(21B25H)=7BH,(21B26H)=51H,(21B27H)=84H.则(21B26H)的字单元内容为〔 4 〕。
A. 517BHB. 397bHC. 7B39HD. 8451H第25题〔1分〕8086/8088的输入/输出指令中,间接寻址外设时,地址总线使用了多少条?可访问端口地址范围为〔3〕。
A. 20条,O000H~0FFFFFHB. 20条,0000H~0FFFFHC. 16条,0000H~FFFFHD. 8条,00H~FFH第28题〔1分〕微型电脑的字长是指〔 1 〕。
A. 电脑一次可以直接处理的二进制位数B. CPU数据总线的宽度C. 一个字节的长度D. CPU地址总线的宽度第31题〔1分〕汇编语言中,存放下一条将要执行的指令地址寄存器是〔 4 〕。
A. SPB. AXC. DID. IP第32 题〔1分〕汇编语言中,cpu和外部设备的信息传送都要通过哪个寄存器〔2〕。
A. BXB. AXC. CXD. DX二、多项选择题〔不考〕三、是非题第1题〔1分〕〔 2 〕当ZF为1时,SF为1。
第2题〔1分〕〔 1 〕8088/8086中,取指令和执行指令可以重叠操作。
第3题〔1分〕〔1〕当DF=0时,串处理从低地址向高地址方向变化。
第4题〔1分〕〔 1 〕当IF=1时,开中断。
四、填空题第7题〔2分〕以下各数均为二进制补码:A=00110010B,B=01001010B,C=11101001B,D=10111010B。
试写出以下运算的十进制数真值和各标志位的值:A+B= 124 ,CF= 0 ,SF= 0 ,ZF=0 ,AF=0 ,PF=0 ,OF=0 .D-C-A= -97 。
汇编语言习题与答案
汇编语言习题与答案一、填空题:把答案填在题中横线上。
1. 8位无符号整数的表示范围为0~255,写成16进制形式为00H~__________;8位有符号整数的表示范围为-128~+127,写成16进制形式为__________~__________。
2. 8086/8088分段管理存储空间,但每段容量最大不超过__________。
3. 逻辑地址为F000:100的存储单元,其物理地址是__________。
4. 用来指示堆栈栈顶的偏移地址的是__________寄存器。
5. 若要测试AL寄存器D4、D2、D0位是否都为0,则可使用__________指令语句(含操作数),以产生转移条件。
这条指令执行后将利用标志位__________实现转移。
6. 若定义:bdata db 2 dup(1,2,2dup(3),4),则dbata变量前5个单元从低地址到高地址的数据依次是__________。
7. 假设varw是一个16位变量,则指令“mov varw,ax”的目的操作数的寻址方式是__________。
(二、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在题后的括号内。
1.对汇编语言源程序进行翻译,形成OBJ文件的是A.汇编程序B.连接程序C.编辑程序D.调试程序[]2.下列各个8位二进制数的补码中,真值最大的是A. B.[]语句中,表达常数不正确的形式是B. A346H`C.’A’D. 5600 []4.如果SS=600H,则说明堆栈段物理地址起始于[]50 dup()预留了存储空间的字节数是[]6.下列指令中有操作数在代码段中的是ax,34h ax,bxword ptr [34h] ax,[34h] []@7.假设AL=5,要使得AL=0FAH,应执行的指令是A. not al al,0fhal,0f0h al,0fh []8.设置逻辑段应该采用的一对伪指令是ends end startendp endm []9.条件转移指令JNE条件是=0 =1=0 =1 []10.逻辑移位指令SHL可用于!A.有符号数乘以2B.有符号数除以2C.无符号数乘以2D.无符号数除以2 []11.执行“in al, dx”指令后,进入AL寄存器的数据来自A.寄存器B.存储器C.立即数D.外设端口[]12.将十进制数75以压缩BCD码送入AX,正确的指令是ax,0075 B. mov ax,0705ax,0075h D. mov ax,0705h []13.如下指令可将AX寄存器内容改变的是A. cmp ax,bxB. test ax,bx?C. and ax,bxD. xchg ax,bx []14.设AH=10H,执行“neg ah”指令后,正确的结果是A. AH=10H、CF=1B. AH=F0H、CF=0C. AH=10H、CF=0D. AH=F0H、CF=1 []15.如下程序段:again: mov es:[di],alinc diloop again可用指令__________完成相同的功能。
汇编语言习题及答案
汇编语言复习题简答题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.ZF标志位是标志结果是否为零的,若结果,ZF为(),否则ZF为()。
当ZF为1时,SF为()2.标号可以有两种类型属性。
它们是()和()3.8位无符号整数的表示范围为0--255,写成16进制形式为(),8位有符号整数的表示范围为-128--+127,写成16进制形式为()4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是(),不得有名字的是(),可有可无名字的是()。
5.循环程序通常由()()()和循环结果外理四部分构成6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/()于+,-;XOR,OR()于AND,LT()于GT7. 宏指令定义必须由伪指令()开始,伪指令()结束,两者之间的语句称为()8.调用程序与子程序之间的参数传递方法有四种,即堆栈法()()()9.分别用一条语句实现下述指明的功能(1)栈顶内容弹出送字变量AYW()(2)双字变量AYD存放的地址指针送ES和SI()(3)变量AY2类型属性送AH()(4)不允许中断即关中断()(5)将字符串…HOW ARE YOU!‟存入变量AYB()(6)子程序返回调用程序()(7)地址表达式AYY[4]的偏移地址送字变量ADDR()(8)AX的内容加1,要求不影响CF()(9)BX的内容加1,要求影响所有标志位()(10)若操作结果为零转向短号GOON()二、单选题1.IBM PC微机中,有符号数是用()表示的1.原码2.补码3.反码4.BCD码2.把汇编源程序变成代码程序的过程是()1.编译2.汇编3.编辑4.链接三、己知:VAR1,VAR2的类型属性分别为字和字节,标号LPFAR的类型属性为FAR。
指出下列非法语句的错误原因1.POP CS()2.INC [BX] ( )3.MVL 8( )4.JLE LPFAR( )5.MOV DB,1800( )6.MOV[DI],VAR17.SUB AX,VAR2( )8.CMP SS AX( )四、简答题1.试述子程序的一般结构组成2.标号有哪三个属性?其含义是什么?3.试述CMP AX,BX和SUB AX,BX两条语句的异同点?五、阅读如下程序段,回答所提出的问题,假定X1,X2,...XN为无符号数。
汇编作业与答案
汇编语言作业一一、单选题第18题(1分)当运算结果的最高位为1时,标志位( 3 )。
A. CF=1B. OF=1C. SF=1D. ZF=1第19题(1分)8086CPU的寄存器中,通常用作数据寄存器,且隐含用法为I/O端口的间址寄存器的是(4)。
A. AXB. BXC. CXD. DX第22题(1分)设(21b24H)=39H,(21B25H)=7BH,(21B26H)=51H,(21B27H)=84H.则(21B26H)的字单元内容为( 4 )。
A. 517BHB. 397bHC. 7B39HD. 8451H第25题(1分)8086/8088的输入/输出指令中,间接寻址外设时,地址总线使用了多少条?可访问端口地址范围为(3)。
A. 20条,O000H~0FFFFFHB. 20条,0000H~0FFFFHC. 16条,0000H~FFFFHD. 8条,00H~FFH第28题(1分)微型计算机的字长是指( 1 )。
A. 计算机一次可以直接处理的二进制位数B. CPU数据总线的宽度C. 一个字节的长度D. CPU地址总线的宽度第31题(1分)汇编语言中,存放下一条将要执行的指令地址寄存器是( 4 )。
A. SPB. AXC. DID. IP第32 题(1分)汇编语言中,cpu和外部设备的信息传送都要通过哪个寄存器(2)。
A. BXB. AXC. CXD. DX二、多选题(不考)三、是非题第1题(1分)( 2 )当ZF为1时,SF为1。
第2题(1分)( 1 )8088/8086中,取指令和执行指令可以重叠操作。
第3题(1分)(1)当DF=0时,串处理从低地址向高地址方向变化。
第4题(1分)( 1 )当IF=1时,开中断。
四、填空题第7题(2分)下列各数均为二进制补码:A=00110010B,B=01001010B,C=11101001B,D=10111010B。
试写出下列运算的十进制数真值和各标志位的值:A+B= 124 ,CF= 0 ,SF= 0 ,ZF=0 ,AF=0 ,PF=0 ,OF=0 .D-C-A= -97 。
《汇编语言》试卷及答案
2、结果如下:(每小题2分,合计8分)
(1)立即寻址;
(2)寄存器寻址;
(3)寄存器间接寻址;
(4)相对基址变址寻址方式;
3、(每小题2分,合计4分)
(1)TABLE DB‘AB’,0,0,‘CD’,0,0
(2)TABLE DW‘BA’,0,‘DC’,0
4、(4分)
(1)顺序程序;
A. TF=0B. SF=1C. IF=0D. DF=1
9、在IN AL,PORT指令中,PORT称为()。
A. 立即数B. 有效地址C.端口地址D.寄存器名
10、下列语句格式有错误的是()。
A、LEA BX,STR B、XCHGBL,AL
C、DATA:DB‘AB’D、EMP=EMP+1
三.简答题(共计20分)
HLT
问程序执行后:
AX =(3分);
4、下面程序的功能是将键盘输入的小写字母用大写字母显示出来。请将程序补充完整。(每空2分,共10分)
CODESEGMENT
(1)
START:MOVAH,1
(2)
CMP AL,‘a’
JLEXIT
CMPAL,‘z’
JGEXIT
SUB(3)
MOVDL,AL
MOVAH,2H
INT21H
CODEENDS
ENDSTART
3、参考程序:
(共8分,程序结构正确可得2分,初始化正确得2分,功能正确得4分)
DATASEGMENT
XDB X
YDB?
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,
START:MOVAX,DATA
《汇编语言》作业答案
3545233.doc 制作:江家宝《IBM—PC汇编语言程序设计》课后作业参考答案目录第一章:基础知识 ........................................................................................ 2第二章:80×86计算机组织......................................................................... 2第三章:80×86的指令系统和寻址方式..................................................... 3第四章:汇编语言程序格式........................................................................ 7第五章:循环与分支程序设计.................................................................... 9第六章:子程序结构 ................................................................................ 12第七章:高级汇编语言技术.................................................................... 20第八章:输入输出程序设计.................................................................... 22第九章:BIOS和DOS中断 (23)3545233.doc 制作:江家宝第一章:基础知识1.1、用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(3) 4095 答:(3) 4095 =1111 1111 1111B=FFFH1.2、将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 答:(1) 10 1101B=2DH=451.3、将下列十六进制数转换为二进制数和十进制数:(4) 1234 答:(4) 1234H=1 0010 0011 0100B=46601.4、完成下列十六进制数的运算,并转换为十进制数进行校核:(3) ABCD-FE 答:(3) ABCD-FEH=AACFH=437271.5、下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
汇编部分参考答案
1、与MOV BX,OFFSET VAR指令完全等效的指令是(D )。
A.MOV BX,VARB.LDS BX,VARC.LES BX,VARD.LEA BX,VAR2、下列指令执行后对源和目的操作数均无影响的是(D )。
A.MOV [BX+2],AXB.SUB AX,2467HC.SBB [SI],BXD.CMP AX,BX3、表示过程定义结束的伪指令是( A)。
A.ENDPB.ENDSC.ENDD.ENDM4、编写分支程序,在条件判断前可用指令构成条件,其中不能形成条件的指令有(D )。
A.CMPB.SUBC.ANDD.MOV5、上面指令执行后,AX的内容是( A )。
A.0302HB.0203HC.0202HD.0303H6、 BUF1 DB 3 DUP(0,2 DUP(1,2),3)COUNT EQU $ - BUF1符号COUNT等价的值是(B )。
A.6B.18C.16D.87、 DA1 DW 2A05HDA2 DB 0FAH…MOV AL,BYTE PTR DA1SUB DA2,AL上述指令执行后,DA2中的内容是( C)。
A.0DAHB.0FAHC.0F5HD.0D0H8、为在一连续的存储单元中依次存放数据41H,42H,…,48H,下面的数据定义语句中有语法错误的是( B)。
A.DB 41H,42H,43H,44H,45H,46H,47H,48HB.DW 4142H,4344H,4546H,4748HC.DB ‘ABCDEFGH'D.DW ‘BA',‘DC',‘FE',‘HG'9、设(SP)=0028H,执行段内返回指令RET 6后,SP的内容是( C)。
A.0036HB.0022HC.0030HD.0020H10、条件转移指令JNBE产生转移的条件是( A)。
A. CF=0 AND ZF=0B. CF=0 AND ZF=1C. CF=1 AND ZF=0D. CF=1 AND ZF=111、在汇编语言程序中,对END语句的叙述正确的是(C)。
期末汇编语言试题及答案
1。
十进制数369转换成二进制数为(101110001)2,转换成十六进制数为(171)16。
2. 计算机中的指令由(操作码)和( 地址码)两部分组成。
3. 8086的地址总线有20根,寻址范围为(1M )字节.4. 下一条将要执行的指令的地址存放在寄存器(指令指针寄存器)中。
5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。
6. 汇编语言源程序需经过(汇编)程序汇编,(连接)程序连接才能生成可执行文件。
7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=(27272H)8. REP指令前缀与(字符串)指令配合使用.9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( D )和( E )命令.10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令(AND AL,3F );如果要求第0,1位变反,可使用指令(XOR AL,3F )11。
宏汇编适合于(程序短),(参数多)的子功能段使用;二、选择题1. 设字长N=16,有符号数7AE9H的补码表示为( D )A.9EA7H B。
76C4H C. 8417H D。
7AE9H2. 比较有符号数3260H与0B425H的大小关系为( C )A. 相等B. 小于 C。
大于 D。
不能比较3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为( A )A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI)C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI)4. 在指令MOV AX,[1000H]中,源操作数的寻址方式为( B )A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址5。
中断矢量表中存放的是( D )A. 中断类型号 B。
断点地址 C。
中断服务程序 D。
中断服务程序入口地址6。
汇编语言试题及答案
汇编语言试题及答案在此提供一篇长度超过2000字的文章,包含汇编语言试题及答案。
文章排版整洁美观,语句通顺,全文表达流畅,无影响阅读体验的问题。
文章中不包含网址链接。
请注意,为了保持文章的可读性,我将不使用特定的合同或作文格式。
以下是试题及答案:汇编语言试题及答案第一部分:选择题1. 汇编语言是一种与计算机底层直接交互的语言,它是一种________。
A. 低级语言B. 高级语言C. 自然语言D. 人工语言2. 汇编指令通常由________组成。
A. 字节B. 字C. 双字D. 指针3. 汇编语言最基本的操作单元是________。
A. 指令B. 寄存器C. 内存单元D. 字节4. 哪个寄存器用于保存程序执行的当前地址?A. AXB. BXC. IPD. SP5. 在汇编语言中,ADD指令的作用是________。
A. 从内存中读取数据B. 将两个数相加C. 将某个寄存器的值加1D. 将数据写入内存6. 在8086汇编语言中,DW是什么的缩写?A. Double WordB. Data WordC. Define WordD. Data Width7. JMP指令用于________。
A. 跳转到程序指定的地址B. 变量声明C. 将寄存器的值减1D. 在屏幕上显示字符8. 在汇编语言中,数据可以以________的形式表示。
A. 二进制B. 十进制C. 十六进制D. 所有上述形式9. 在8086汇编语言中,MOV指令的作用是________。
A. 将数据复制到一个寄存器或内存位置B. 将寄存器的值加1C. 跳转到程序指定的地址D. 读取屏幕上的字符10. 汇编语言编写的程序需要经过________才能在计算机上运行。
A. 编译B. 解释C. 加密D. 校验第二部分:简答题1. 简要解释一下汇编语言和机器语言的区别。
汇编语言是一种接近机器语言的低级语言,使用助记符来代替机器指令的二进制码。
汇编语言通过编译器将其转换为机器语言,然后由计算机执行。
《汇编语言程序设计》考试练习题及答案
《汇编语言程序设计》考试练习题及答案一、单选题1. 计算机中存取信息或数据的最小单位为()A 、位B 、字节C 、字D 、双字答案:B2. 调用子程序的指令为()A 、CALLB 、RETC 、HLTD 、NOP答案:A3. DOS功能调用是通过()指令去调用DOS系统提供的软件中断处理程序A 、INT 21HB 、INT 23HC 、INT 12HD 、INT 11H答案:A4. 满足()时,CPU允许中断A 、IF=0B 、IF=1C 、DF=0D 、DF=1答案:B5. 完成对CL寄存器的内容乘以4的正确操作是()。
A 、ROL CL,1 ROL CL, 1B 、MUL 4C 、SHL CL, 1 SHL CL, 1D 、MOV CL , 2 SHL CL, CL答案:C6. 下面寄存器中可以分为两个独立8位寄存器的是()A 、AXB 、DIC 、CSD 、SI答案:A7. ()是用二进制编码的机器指令的集合及一组使用机器指令的规则,是CPU能直接识别的唯一语言。
A 、汇编语言B 、机器语言C 、JAVA语言D 、C语言答案:B8. 源程序模块结束语句为()A 、ORGB 、ENDC 、SEGMENTD 、START答案:B9. 8位补码表示的有符号数的表示范围是()A 、0~255B 、-128~+127C 、0~65535D 、-32768~+32767答案:B10. 在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来,下列说法正确的是()A 、占内存空间小,但速度慢B 、占内存空间大,但速度快C 、占内存空间相同,但速度快D 、占内存空间相同,但速度慢答案:B11. 与LEABX ,BUF指令完全等效的指令是()。
A 、MOV BX ,BUFB 、LDS BX ,BUFC 、MOV BX ,OFFSET BUFD 、MOV BX ,WORD PTR BUF答案:C12. 14的非压缩BCD码为()A 、00010100B 、01000001C 、0000000000010100D 、0000000100000100答案:D13. 要实现使BETA的值为56,应采用的语句是()A 、BETA DB 56B 、BETA DB 56HC 、BETA EQU 56HD 、BETA EQU 56答案:D14. ()不可以做目的操作数A 、立即数B 、寄存器C 、存储器操作数D 、累加器答案:A15. 计算机一般由中央处理器、存储器和输入/输出子系统组成,其中()可以存放程序、数据、信息及中间结果。
汇编语言课后习题及答案 按章节 超全面
`00第一章课外练习题一、单项选择题:1.从键盘输入的字符,在计算机内存储的是它的(A)(A)二进制编码(B)四进制编码(C)八进制编码(D)十六进制编码2.6位无符号二进制数能表示的最大十进制数是(B)。
(A)64 (B)63 (C)32 (D)31 3.十进制数269变换为十六进制数是(C)。
(A)10B (B)10C (C)10D (D)10E 4.8位的微型计算机系统是以16位来表示地址,则该微机系统有(C)个地址空间。
(A)255 (B)65535 (C)65536 (D)1048576 5.8位有符号二进制数能表示的最大十进制数是(D)。
(A)256 (B)255 (C)128 (D)127 6.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)。
(A)无符号十进制数136 (B)带符号十进制数-120(C)压缩型BCD十进制数88 (D)8位二进制数-8的补码表示7.有一个数值152,它与十六进制数6A相等,那么该数值是(B)。
(A)二进制数(B)八进制数(C)十进制数(D)四进制数8.7位ASCII总共可表示(C)个符号。
(A)256 (B)127 (C)128 (D)255 9.4B的字长是(C)。
(A)8位(B)16位(C)32位(D)64位二、判断题(判断每题正误,对的在题后括号内划“√”,错的划“×”)1.字节通常用英文单词“Bit”来表示(×)。
2.目前广泛使用的Pentium计算机其字长为5个字节(×)。
3.存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节(√)。
4.微型计算机的字长并不一定是字节的整数倍(×)。
三、填空题1.8位有/无符号整数的表示范围写成16进制形式为(80~~7F)/(00~~FF)。
2.己知:计算机中有一个“01100001”编码,如果把它看作是无符号数,它是十进制什么数(97);如果认为它是BCD,则表示(01100001)BCD;认为它是某个ASCII,则代表(a)字符。
《汇编语言》作业及答案
习题一1.在计算机内部,计算机能够直接执行的程序语言是。
A.汇编语言B.C++语言C.机器语言D.高级语言2.在堆栈段中,存放栈顶地址的寄存器是。
A.IPB.SPC.BXD.BP3.指令指针寄存器IP用来存放代码段中的偏移地址。
在程序运行的过程中,它始终指向。
A.下一条指令的首地址B.下一条指令的地址C.当前指令的首地址D.当前指令的地址4.编译程序的功能是。
A.检查源程序中的语法错误和逻辑错误B.将源程序编译成目标程序C.改正源程序中的语法错误D.将高级语言源程序翻译成汇编语言源程序5.用户为了解决自己的问题,用汇编语言所编写的程序,称为。
A.目标程序B.源程序C.可执行程序D.汇编程序6.计算机中用来存储程序、数据等信息的记忆装置是。
A.控制器B.运算器C.CPUD.存储器7.在宏汇编中,源程序必须通过____编译_______生成目标代码,然后用连接程序将其转化为可执行文件,该文件可在系统中运行。
习题二1当SS=3000H,SP=0100H时,执行PUSH AX指令后,堆栈顶部的物理地址是()A.30100HB.30098HC.30102HD.300FEH2设10000010B分别以原码、补码及反码表示时,则对应的十进制数依次是()A.-82、-126、-2B.-2、-125、126C.-2、-126、-125D.-82、-125、1253标志寄存器中属于控制标志位的是()A.DF,OF,SFB.DF,IF,TFC.OF,CF,PFD.AF,OF,SF4设(AX)=4544H,在执行指令”SUB AH,AL”之后,()A.CF=0,OF=0B.CF=0,OF=1C.CF=1,OF=0D.CF=1,OF=15若寄存器AX、BX、CX、DX的内容分别为18,19,20,21时,依次执行PUSH AX,PUSH BX,POP CX,POP DX后,寄存器CX的内容为______19____________。
汇编语言程序设计练习题及参考答案
一、单项选择题从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。
1.用来存放下一条将要执行的指令地址的寄存器是(B)A.SP B.IP C.BP D.CS2.要使串处理从低地址向高地址进行,应把标志位置为(D)A.IF=1B.TF=0C.DF=1D.DF=03.使状态标志位CF清零的错误指令是(C)A.OR AX,AX B.SUB AX,AXC.MOV CF,0D.CLC4.设SP=1110H,执行PUSH AX指令后,SP的内容为(B)A.SP=1112H B.SP=110EHC.SP=1111H D.SP=110FH5.汇编源程序出现语法错误的指令有(D)A.MOV[BX+SI],AL B.MOV AX,[BP+DI]C.MOV DS,AX D.MOV CS,AX6.下列串操作指令中,必须同时指明源串和目的串地址的指令是(D)A.STOSW B.LODSWC.SCASW D.CMPSW7.设BL中有一无符号数,实现把BL中的数乘以2,应选用的指令是(B)A.SHR BL,1B.SHL BL,1C.SAR BL,1D.RCR BL,18.执行PUSH AX指令的正确步骤是(A)A.1.SP←SP-1,(SP)←AH B.1.(SP)←AH,SP←SP-12.SP←SP-1,(SP)←AL2.(SP)←AL,SP←SP-1C.1.SP←SP+1,(SP)←AH D.1.(SP)←AH,SP←SP+12.SP←SP+1,(SP)←AL2.(SP)←AL,SP←SP+19.CF=1时转移到目标地址的条件转移指令是(B)A.JNC B.JC C.JZ D.JS10.在执行NEG指令时,对标志位CF有影响,其影响的规则是(C)A.对正数求补时,CF=0B.对负数求补时,CF=0C.对非零数求补时,CF=1D.对零求补时,CF=111.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是(A)A.目的操作数最高位为0B.目的操作数最高位为1C.目的操作数为任意情况D.无论什么情况都不可能相同12.设AL=04H,BL=0F8H,执行IMUL BL指令后,结果是(D)A.AX=0032H B.AX=00E0HC.AX=03E0H D.AX=0FFE0H13.指令的操作数中,允许出现表达式,例如BUF1与BUF2均为变量名,下面指令中语法正确的是(D)A.MOV AX,BUFl*BUF2B.MOV AX,BUF1/BUF2C.MOV AX,BUF1+ES:BUF2D.MOV AX,BUF2-BUF114.下面指令中,操作数的寻址方式为寄存器间接寻址的指令是(C )A.INC WORD PTR [BX+SI]B.INC CX,[SI+COUNT]C.NEG BYTE PTR [BX]D.ADD AX,B15.NUM EQU 80HDA DB 34HAND DA,NUM上述语句执行后,DA 中的内容是(D )A.0B4H B.80H C.34H D.016.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为(A )A.立即、直接、间接B.直接、间接、立即C.直接、立即、间接D.不一定17.语句DA1DB 2DUP(3,5,7)汇编后,该语句可等同于的语句是(D )A.DA1DB 3,5,7B.DA1DB 2,3,5,7C.DA1DB 3,5,7,2D.DA1DB 3,5,7,3,5,718.MOV AL,80HMOV CL,2SAR AL,CL上述指令序列执行后,结果是(D )A.AL=40H B.AL=20HC.AL=0C0H D.AL=0E0H19.下面是实现将AL 内容加1的压缩型BCD 码加法程序段,其中正确的指令序列是(A )A.INC AL B.ADD AL,1DAA DASC.ADD AL,1D.STCDAA AAA20.现有数据存储如图所示:30100H 30101H 30102H 30103H 设AL=01H,BX=0100H,DS=3000H 执行换码指令XLAT 后正确的结果是(B )A.AL=20H B.AL=38HC.AL=00H D.AL=41H21.若定义DAT DW 'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是(B )A.0041H B.4100H 20H38H41H55HC.xx41H D.41xxH[注]选项C.和D.中的XX表示任意数据。
汇编语言考试题库及答案
汇编语言考试题库及答案一、选择题1. 在汇编语言中,以下哪个指令用于将数据从内存加载到寄存器中?A. MOVB. ADDC. SUBD. MUL答案:A2. 假设寄存器AX的值为1234H,执行指令“AND AX, 0F0H”后,AX 的值是多少?A. 1230HB. 0F34HC. 0F30HD. 1234H答案:C二、填空题1. 在汇编语言中,________指令用于将立即数加载到寄存器中。
答案:MOV2. 寄存器EAX的高16位是_______。
答案:AX三、简答题1. 解释汇编语言中的“段”是什么概念?答案:在汇编语言中,“段”是内存管理的一个概念,用于将程序的不同部分(如代码、数据、堆栈)分隔开来。
每个段都是内存中的一个区域,它有一个段基址,程序中的地址由段基址和偏移量组合而成。
2. 描述汇编语言中循环结构的实现方式。
答案:循环结构在汇编语言中通常通过标签和跳转指令实现。
首先定义一个循环的开始标签,然后在循环体中执行需要重复的操作。
循环结束前使用条件跳转指令(如JE、JNE等)跳回循环开始的标签,直到满足跳出循环的条件。
四、编程题1. 编写一个汇编程序,实现将两个16位无符号数相加,并将结果存储在寄存器AX中。
答案:```MOV AX, 1234HMOV BX, 5678HADD AX, BX```上述程序首先将1234H加载到AX寄存器中,然后将5678H加载到BX寄存器中,最后使用ADD指令将BX中的值加到AX中,结果存储在AX寄存器中。
2. 编写一个汇编程序,实现将字符串"Hello, World!"存储在内存中。
答案:```.DATAString DB 'Hello, World!', 0```上述程序在数据段定义了一个字符串"Hello, World!",后面跟着一个空字符作为字符串的结束标记。
汇编语言程序设计第二次作业
首页一.单选题(共40题,40.0分)1AOV网是一种( )。
•A、有向图•B、无向图•C、无向无环图•D、有向无环图正确答案: D 我的答案:D得分: 1.0分2指令“MOV AX,0FH XOR 1111B”执行后的结果是( )。
•A、0FFFFH→AX•B、0FH→AX•C、1111B→ AX•D、0→AX正确答案: D 我的答案:D得分: 1.0分3已知(AL)=35H, (BL)=57H,执行指令ADD AL, BLDAA后,AL的值为()。
•A、92HB、8CHC、92D、CH正确答案: A 我的答案:A得分: 1.0分4设Huffman树的叶子结点数为m,则结点总数为( )。
•A、2m•B、2m-1•C、2m+1•D、m+1正确答案: B 我的答案:B得分: 1.0分5以下程序段中,有数据2000H的字单元的偏移量分别是( )。
ORG 20HVAR1 DB 0,’0’,20H,0,20HDW VAR1•A、03H•B、21H•C、22H•D、23H•E、24H正确答案: D 我的答案:E得分: 0.0分6图所示二叉树结点的前序遍历的序列为( )。
•A、E、G、F、A、C、D、B•B、 E、A、G、C、F、B、D•C、E、A、C、B、D、G、F•D、E、G、A、C、D、F、B正确答案: C 我的答案:C得分: 1.0分7ORG 100HNUM EQU 42HDA1 DW $+56H……MOV BX,0FFSET DA1上述程序段执行后BX中的值是( )。
•A、42H•B、156H•C、100H•D、157H正确答案: C 我的答案:C得分: 1.0分8对线性表进行二分法查找,其前提条件是( )。
•A、线性表以链接方式存储,并且按关键码值排好序•B、线性表以顺序方式存储,并且按关键码值的检索频率排好序•C、线性表以顺序方式存储,并且按关键码值排好序•D、线性表以链接方式存储,并且按关键码值的检索频率排好序正确答案: C 我的答案:A得分: 0.0分9为实现单步操作,即每执行完一条指令就停下来,必须设置标志位( )。
汇编语言试题及答案
汇编语言试题及答案一、选择题1. 下列汇编指令中,用于加载立即数至寄存器的是:A. MOVB. ADDC. SUBD. XOR答案:A. MOV2. MOV指令中,源操作数与目的操作数的位数必须相同吗?A. 是B. 否答案:B. 否3. 下列指令中,用于从内存读取数据的是:A. MOVB. JMPC. ADDD. LEA答案:D. LEA4. 下列寻址方式中,可以直接给出操作数的地址的是:A. 直接寻址B. 间接寻址C. 寄存器寻址D. 寄存器间接寻址答案:A. 直接寻址5. CPU中的程序计数器(PC)用于保存:A. 下一条指令的地址B. 当前指令的地址C. 上一条指令的地址D. 中断服务程序的地址答案:A. 下一条指令的地址二、填空题1. 8086处理器的数据总线位数是_________。
答案:162. MOV AX, BX 汇编指令是将______的值复制到______。
答案:BX,AX3. 寻址方式LEA BX, [SI+DI]的含义是将_______与_______的和作为BX的值。
答案:SI,DI4. 8086处理器的寻址空间大小是_________。
答案:1MB5. 标志寄存器中的ZF标志位表示_________。
答案:零标志位,表示结果为零三、简答题1. 简述什么是汇编语言?汇编语言是一种底层的程序设计语言,通过使用助记符来代替具体的操作码,使得编写的代码易于阅读和理解。
汇编语言直接操作计算机硬件,与机器语言密切相关,最终会被翻译成机器语言运行在计算机上。
2. 什么是寄存器?寄存器是计算机内部用于存储数据和执行操作的高速存储器。
不同的计算机体系结构会有不同的寄存器数量和用途。
寄存器的访问速度非常快,因此在编写汇编语言代码时,经常使用寄存器来进行数据的操作和传递。
3. 请举例说明MOV指令的用法及其作用。
MOV指令用于将数据从一个位置复制到另一个位置。
它可以将立即数、寄存器或内存中的数据复制到目标寄存器或内存位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言作业答案1.3什么是汇编语言源程序、汇编程序、目标程序?见教材P41.10数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0Dh、0aH对应的是什么字符?见教材P81.11计算机中有一个“‘编码,如果把它认为是无符号数,它是十进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?97,61h,a1.13什么是DOS和POM-BIOS?DOS:磁盘操作系统;POM-BIOS:可编程的基本输入输出系统2.3 举例说明CF和OF标志的差异。
见教材P20-212.5 什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达:(1)FFFFh:0 (2)40h:17h (3)2000h:4500h (4)B821h:4567h见教材P22-23 FFFF0h 417h 24500h BC777h2.6 8086有哪4种逻辑段,各种逻辑段分别是什么用途?见教材P232.10 说明下列指令中源操作数的寻址方式?如果BX=2000H,DI=40H,给出DX的值或有效地址EA的值。
(1)mov dx,[1234h] 直接寻址(2) mov dx,1234h 立即寻址(3) mov dx,bx 寄存器寻址(4) mov dx,[bx] 寄存器间接寻址(5) mov dx,[bx+123h] 寄存器相对寻址(6) mov dx,[dx+di] 基址变址寻址(7) mov dx,[bx+di+1234h] 相对基址变址寻址2.11 已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。
(1)mov ax,1200h 1200h(2) mov ax,bx 0100h(3) mov ax,[1200h] 2a4ch(4) mov ax,[bx] 1234h(5) mov ax,[bx+1100h] 2a4ch(6) mov ax,[bx+si] 5678h(7) mov ax,[bx][si+1100h] b765h2.15 已知SS=FFAOH、SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何变化?mov ax,8057hpush ax SP=00B2 [00B1]=80hmov ax,0f79hpush ax SP=00B2 [00B2]=0f79hpop bx BX=0f79h SP=00B1pop [bx] SP=00B0h2.16给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al ,89h 不影响标志add al, al 见教材P38add al, 9dh 见教材P38cmp al, 0bch 见教材P40sub al, al 见教材P39dec al 见教材P39inc al 见教材P382.17设均为双字数据,分别存放在地址为的存储单元中,他们的运算结果存入单元。
阅读如下程序段,给出运算公式。
mov ax,Xmov dx,X+2add an,Yadc dx,Y+2add ax,24adc dx,0sub ax,Zsbb dx,Z+2mov W,axmov W+2,dx Y+X+24-Z2.18 请分别用一条汇编语言指令完成如下功能:(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
ADD DX,BX(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL 中。
ADD AL,[BX+SI](3)用BX和位移量OB2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回寄存器中。
ADD CX,[BX+0B2H](4)用位移量为0520H的直接寻址方式把存储器中的一个字与数4312H相加,并把结果送回该存储单元中。
ADD [0520H],4321H(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。
ADD AL,0A0H2.20 指出下列指令的错误(1)xchg[si],30h 不能用立即数(2)pop cs 没有错误(3) sub[si],[di] 不能全为mem(4)push ah ah应为字数据(5) adc ax,ds 不能用段寄存器(6)add [si],80h [si]应为reg或mem(7)in al ,3fch 位数不对(8)out dx,ah ah只能用al或ax2.21 给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
mov ax,1470hand ax,axor ax,axxor ax,axnot axtest ax,0f0f0h 参考教材P202.23 编写程序段完成如下要求:(1)用位操作指令实现AL(无符号数)乘以10参考教材P49例2.32(2)用逻辑运算指令实现数字0~9的ASCII码与非压缩BCD码的相互转换参考教材P47例2.28(3)把DX.AX中的双字右移4位参考教材P49例2.322.25 已知数据段500h~600h处存放了一个字符串,说明下列程序段执行后的结果:mov si,600hmov di,601hmov ax,dsmov s,axmov cx,256std 数据段向后移动一个字,即数据段首地址为501h和-601hrep movsb2.26 说明下列程序段的功能cldmov ax,0fefhmov cx,5move s,bxmov di,2000hrep stows 将0fefh开始的五个字的内容,送致32000H开始的单元中2.32 判断下列程序段跳转的条件(1)xor ax,lelehje equal ax=1e1eh(2)test al,bjnz there al=或或(3)cmp cx,64hjb there cx<64h2.34 假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断:(1)若DX>DI,转到above执行;CMP DX,DI JA above(2)若AX>SI,转到greater执行;CMP AX,SI JA greater(3)若CX=0,转到zero执行;JNC zero(4)若AX-SI产生溢出,转到overflow执行;CMP AX,SI JO overflow(5)若SI<=AX,转到less_eq执行;CMP SI,AX JBE less_eq(6)若DI<=DX,转到below_eq执行。
CMP DI,DX JBE below_eq2.35 有一个首地址为array的20个字的数值,说明下列程序的功能。
mov ex,20mov ax,0mov si,axsun_loop: add ax,array[si]add si,2loop sum_loopmov total,ax 把array中的20个字的内容相加,并把结果送至total中。
2.36 按照下列要求,编写相应的程序段:(3)编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。
参考教材P48例2.30(6)以知字符串string包含有32KB内容,将其中的‘$’符号替换成空格。
参考教材P52例2.37(7)有一个100个字节元素的数组,其首地为array,将每个元素减1(不考虑溢出)存于原处。
参考教材P52例2.362.39以知AX、BX存放的是4位压缩BCD表示的十进制数,请说明如下子程序的功能和出口参数。
add al,bldaaxchg al,ahadc al,bhdaaxchg al,ah实现AX、BX中的的4位BCD数相加,结果仍为BCD表示的十进制数,存于AX中,出口参数为ax.2.44 补充例2.42,当有溢出时显示“Error!Overflow!”,无溢出时显示“OK”。
参看教材P59例2.42 和P66例2.493.17 修改例题3.3,现在用字定义伪指令dw、字串传送指令movsw和字符传显示9号功能调用实现。
参看教材P79例3.1a 和P93例3.33.22 在SMALL存储模式下,简化段定义格式的代码段、数据段和堆栈段和却省段名、定位、组合以及类别属性分别是什么?参看教材P99(2)SMALL3.25 按下面要求写一个简化段定义格式的源程序(1)定义常量num,其值为5;数据段中定义字数组变量datalist,它的头5个字单元中依次存放-1、0、2、5和4,最后1个单元初值不定;参考教材P93例3.2(2)代码段中的程序将datalist中头num个数的累加和存入datalist的最后1个字单元中。
Num equ 5Datalist dw -1,0,2,5,4,?Mov cx,numMov bx,offset datalistMov bx,0Again: add ax,[bx]Add bx,2Loop againMov [bx],ax3.,26 按下面要求写一个完整段定义格式的源程序(1)数据段从双字边界开始,其中定义一个100字节的数组,同时该段还作为附加段;(2)堆栈段从节边界开始,组合类型为stack;(3)代码段的类别是’coda’,指定段寄存器对应的逻辑段;主程序指定从100h开始,给有关段寄存器赋初值;将数组元素全部设置为64h.参考教材P79例3.1b4.11 编制一个程序,把变量bufX和bufY中较大者存入bufZ;若两者相等,则把其中之一存入bufZ中。
假设变量存放的是8位无符号数。
参考教材P115例4.3a4.12 设变量bufX为有符号16位数,请将它的符号状态保存在signX,即:如果X大于等于0,保存0;如果X小于0,保存—1(ffh)。
编写该程序。
参考教材P121例4.64.13 bufX、bufY和bufZ是3个有符号16进制数,编写一个比较相等关系的程序;(1)如果这3 个数都不相等,则显示0;(2)如果这3 个数中有两个数相等,则显示1;(3)如果这3个数都相等,则显示2。
参考教材P119例4.3b,子程序中加一段显示程序即可。
4.23 编写程序,将一个包含有20个有符号数据的数组arrayM分成两个数组:正数数组arrayP 和负数数组arrayN,并分别把这两个数组中的数据个数显示出来。
参考教材P121例4.6,4.24 编写计算100个正整数之和的程序。
如果和不超过16位字的范围(65535),则保存其和到wordsum,如超过则显示‘overflow’。