汇编语言作业及参考答案
(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 。
- 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’。