汇编语言程序设计课后习题解答宋人杰

上传人:文*** 文档编号:91207757 上传时间:2022-05-16 格式:DOC 页数:41 大小:597.50KB
收藏 版权申诉 举报 下载
汇编语言程序设计课后习题解答宋人杰_第1页
第1页 / 共41页
汇编语言程序设计课后习题解答宋人杰_第2页
第2页 / 共41页
汇编语言程序设计课后习题解答宋人杰_第3页
第3页 / 共41页
资源描述:

《汇编语言程序设计课后习题解答宋人杰》由会员分享,可在线阅读,更多相关《汇编语言程序设计课后习题解答宋人杰(41页珍藏版)》请在装配图网上搜索。

1、第1章 汇编语言基础知识1简述汇编语言源程序、汇编程序、和目标程序的关系。答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。2. 简述汇编语言的优缺点。答:(1) 汇编语言的优点: 可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 可与高级语言配合使用,应用十分广泛。(2) 汇编语言的缺点: 通用性和可移植性较差 相对于高级语言来说较繁锁、易出错、不够直观。3CPU的寻址能力为8KB,那么它的地址总线的宽度为多少?答:134. 1KB的存储器有多少个存储单

2、元?答:1024个字节。5. 指令中的逻辑地址由哪两部分组成?答:指令中的逻辑地址由段基址和偏移量组成。6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。(1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据的值。答: 字节型数据:11H 字型数据:0A

3、311H 双字型数据:0113A311H8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为多少?若段内偏移地址为2228H,则段基地址为多少?答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH9. 在实模式环境中,一个段最长不能超过多少字节?答:64KB10. 实模式可寻址的内存范围是多少?答:1MB41 / 41第2章 汇编语言源程序格式1请解释变量和标号的含义,两者有何区别?答:标号代表一条指令所在单元的地址,在代码段中定义;变量是存放数据的存储单元的地址符号名,在除代码段以外的其他段中定义。变量和标号

4、的主要区别在于变量指的是数据,而标号则对应的是指令。2. 变量和标号有什么属性?答:都具有三种属性:段属性、偏移属性和类型属性3. 伪指令语句与指令语句的区别是什么?伪指令有什么用途?答:伪指令并不像指令语句那样在程序运行期间由计算机自动执行,而是在汇编程序对源程序汇编期间由汇编程序处理的操作。伪指令可以完成如处理器选择、定义程序模块、数据定义、存储区分配、指示程序开始和结束等功能。4. 数值返回运算符有哪几种?简述LENGTH和SIZE的区别。答:数值返回运算符包括:SEG(取段地址)、OFFSET(取偏移地址)、TYPE(取类型值)、LENGTH(取长度)、SIZE(取总字节数)。对于变量

5、中使用DUP的情况,LENGTH回送分配给该变量的单元数,对于其他情况则送1;而SIZE会送分配给变量的总字节数,也就是LENGTH和TYPE的乘积。5. 画图说明下列伪指令所定义的数据在内存中的存放形式。 (1) ARR1 DB 6,34H,-7 (2) ARR2 DW 3C5DH,1,? (3) ARR3 DB 2 DUP(1,2,DUP(2,5),3) (4) ARR4 DB HELLO (5) ARR% DB 1234答:(1) 见题图2.1题图2.1 (2) 见题图2.2题图2.2 (3) 见题图2.3题图2.3 (4) 见题图2.4题图2.4 (5) 题图2.5题图2.56. 写出

6、下列变量定义语句。(1) 为缓冲区BUF1预留20B的存储空间。(2) 将字符串ABCD,1234存放于BUF2存储区中。答: (1) BUF1 DB 20 DUP(?) (2) BUF2 DB ABCD DB 12347. 符号定义语句如下: BUF DB 2,3,4,5,345 EBUF DB 8 LT DB EQU EBUF-BUF 问LT的值是多少?答:LT的值为78. 假设程序中的数据定义如下: A DW ? B DB 16 DUP(?) C DD ? T EQU $-A 问T的值是多少?它表示什么意义?答:T的值是22;它表示从变量A到T之间分配的存储空间(字节)数目。9. 如何规

7、定一个程序执行的开始位置?主程序执行结束应该如何返回DOS?源程序在何处停止汇编过程?答:程序开始位置:END伪指令后的标号所对应的地址;应用程序开始伪指令.STARTUP处。 返回DOS:RET指令结合PUSH DS等指令;用DOS功能调用的第4CH号中断;.EXIT伪指令。 END伪指令处停止汇编过程。10.EQU伪指令与“=”伪指令有何区别?答:在同一程序中,“=”伪指令可对一个符号重复定义11.指出下列伪指令表达方式的错误,并改正之。 (1) DATA SEG (2) SEGMENT CODE (3) MYDATA SEGMENT DATA ENDS (4) MAIN PROC FAR

8、 END MAIN MAIN ENDP答:(1) SEG改为SEGMENT (2) 没有段名 (3) DATA ENDS改为MYDATA ENDS (4) END MAIN删除第3章 8086/8088寻址方式及指令系统1什么是寻址方式,8086/8088微处理器有几种寻址方式,各类寻址方式的基本特征是什么?答:寻址方式就是寻找指令中操作数的方式,或寻找指令转移目的地址的方式。 8086/8088微处理器的寻址方式分为数据寻址方式和程序转移寻址方式。数据寻址方式主要包括立即数寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址变址寻址方式和相对基址变址寻址方式;

9、程序转移寻址方式主要包括段内直接寻址、段内间接寻址、段间直接寻址、段间间接寻址。立即数寻址:操作数就在指令中,作为指令的一部分,跟在操作码后存放在代码段。寄存器寻址:操作数在寄存器中,指令中指定寄存器号。直接寻址方式:操作数在存储器中,指令直接包含操作数的有效地址EA。寄存器间接寻址:操作数在存储器中,操作数的有效地址在SI,DI,BX,BP这4个寄存器之一中。寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI,DI)的内容加上8位或16位的位移之和。基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)加上变址寄存器(S

10、I,DI)的内容。相对基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)和变址寄存器(SI,DI)的内容加上8位或16位的位移之和。段内直接寻址:转向的有效地址是当前IP寄存器的内容和指令中指定的8位或16位位移量之和。段内间接寻址:转向的有效地址是一个寄存器或是一个存储单元的内容。段间直接寻址:在指令中直接提供了转向段地址和偏移地址。段间间接寻址:用存储器里的两个相继字的内容来取代IP和CS寄存器中的原始内容,以达到段间转移的目的。2. 假定(DS)=1000H,(SI)=007FH,(BX)=0040H,(BP)=0016H,变量TABLE的偏移地址为0100H

11、,试指出下列指令的源操作数字段的寻址方式,它的有效地址(EA)和物理地址(PA)分别是多少? (1) MOV AX,1234H (2) MOV AX,TABLE (3) MOV AX,BX+100H (4) MOV AX,TABLEBPSI答:(1) 直接寻址,EA=1234H,PA=11234H (2)直接寻址,EA=0100H,PA=10100H (3) 寄存器相对寻址,EA=0140H,PA=10140H(4)相对基址变址寻址,EA=0195H,PA=10195H3. 若TABLE为数据段0032单元的符号名,其中存放的内容为1234H,试问下列两条指令有什么区别?执行完指令后,AX寄存

12、器的内容是什么? MOV AX,TABLE LEA AX,TABLE答:第一条指令是取0032单元的内容,执行完后AX的内容是1234H 第二条指令是取TABLE的偏移地址,执行完后AX的内容为0032H4. 指出下列指令的错误。(1) MOV CX,DL (2) MOV IP,AX (3) MOV ES,1234H (4) MOV ES,DS (5) MOV AL,300H (6) MOV SP,AX (7) MOV AX,BX+DI (8) MOV 20H,AH答:(1) 两操作数长度不一致 (2) 目的操作数不能为IP (3) 立即数不能直接送段寄存器 (4) 两个段寄存器之间不能直接进

13、行数据传送 (5) 两操作数长度不一致 (6) SP不能用作间址寄存器 (7) BX+DI改为BXDI或BX+DI (8) 目的操作数不能为立即数5. 指出下列指令的错误。(1) POP CS(2) SUB SI,DI(3) PUSH AH(4) ADC AX,DS(5) XCHG SI,30H(6) OUT DX,AH(7) IN AL,3FCH (8) MUL 5答:(1) POP指令不允许使用CS (2) 两操作数不能同时是存储器寻址方式 (3) 堆栈的操作必须以字为单位 (4) 段寄存器不允许直接参加运算 (5) XCHG指令的操作数不允许是立即数 (6) OUT指令只能用AL做源操作

14、数 (7) 端口号大于255,必须将其放到DX中 (8) MUL指令源操作数不允许是立即数6. 请分别用一条汇编语言指令完成如下功能。 (1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。 (2) 用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 (3) 用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。 (4) 把数0A0H与AL寄存器的内容相加,并把结果送回AL中。答:(1)ADD DX,BX (2)ADD AL,BX+SI (3)ADD BX+0B2H,CX (4)ADD

15、 AL,0A0H7. 求出以下各十六进制数与十六进制数58B0之和,并根据结果设置标志位SF、ZF、CF和OF的值。(1) 1234H(2) 5678H(3) 0AF50H (4) 9B7EH答:(1)和为6AE4H,SF=0,ZF=0,CF=0,OF=0 (2)和为0AF28H,SF=1, ZF=0, CF=0, OF=1 (3)和为0800H, SF=0, ZF=0, CF=1, OF=0 (4)和为0F42EH, SF=1, ZF=0, CF=0, OF=08. 执行指令ADD AL,72H前,(AL)=8EH,标志寄存器的状态标志OF、SF、ZF、AF、PF和CF全为0,指出该指令执行

16、后标志寄存器的值。答:指令执行后,AL的内容为0000000H,且有进位,标志寄存器中各标志位的值为:OF=0,SF=0,ZF=1,AF=1,PF=1,CF=19. 已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX 试问:1、每条指令执行完后,AX的内容是什么?2、每条指令执行完后,CF、SF和ZF的值是什么?3、程序执行完后,AX和DX的内容是什么?答:(1)(2)MOV AX,1234H ; (AX)=1234H,各标志位不变MOV CL,4 ; (AX)=1234H,各标志位不变ROL AX,CL ; (AX)

17、=2341H,CF=1,其它标志位不变DEC AX ; (AX)=2340H,CF不变,SF=0,ZF=0MOV CX,4 ; (AX)=2340H,各标志位不变MUL CX ; (AX)=8D00H,CF=0,ZF=0,SF=0(3) 程序执行完后,(AX)=8D00H,(DX)=0000H10. 编程序段,将AL、BL、CL、DL相加,结果存在DX中。答:MOV AH,0ADD AL,BLADC AH,0ADD AL,CLADC AH,0ADD AL,DLADC AH,0MOV DX,AX11. 编程序段,从AX中减去DI,SI和BP中的数据,结果送BX。答:SUB AX,DISUB AX

18、,SISUB AX,BPMOV BX,AX12. 假设(BX)=0E3H,变量VALUE中存放的内容为79H,确定下列各指令单独执行后的结果。 (1) OR BX,VALUE (2) AND BX,VALUE (3) XOR BX,OFFH (4) AND BX,01H (5) TEST BX,05H(6) XOR BX,VALUE答: (1) (BX)=0FBH(2) (BX)=61H(3) (BX)=1CH(4) (BX)=01H(5) (BX)=0E3H (6) (BX)=9AH13. 已知数据段500H600H处存放了一个字符串,说明下列程序段执行后的结果。MOV SI,600HMOV

19、 DI,601HMOV AX,DSMOV ES,AXMOV CX,256STDREP MOVSB答:将数据段501H600H中存储的字符串移到数据段502601H中14. 说明下列程序段的功能。CLDMOV AX,0FEFHMOV CX,5MOV BX,3000HMOV ES,BXMOV DI,2000HREP STOSW答:将附加段的32000H开始的连续5个字初始化为0FEFH15. 判断下列程序段跳转的条件。 (1) XOR AX,1E1EH JE EQUAL (2) TEST AL,10000001B JNZ THERE (3) CMP CX,64H JB THERE答:(1) AX中

20、的值为1E1EH时会跳转(2) AL的最低和最高位至少有一位为1时发生跳转(3) CX中的值小于64H时发生跳转16. 选取正确指令,完成以下任务。 (1) 右移DI三位,并将0移入最左一位。(2) AL内容左移一位,0移入最后一位。(3) DX寄存器右移一位,并且使结果的符号位与原符号位相同。答:(1) MOV CL,3 SHR DI,CL(2) SHL AL,1(3) SAR DX,117. 假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断。 (1) 若DXDI,转到ABOVE执行(2) 若AXSI,转到GREATER执行。 (3) 若CX

21、=0,转到ZERO执行(4) 若AX-SI产生溢出,转到OVERFLOW执行。 (5) 若SIAX,转到LESS_EQ执行。(6) 若DIDX,转到BELOW_EQ执行。答:(1) CMP DX,DI JA ABOVE(2) CMP AX,SI JG GREATER(3) CMP CX,0 JE ZERO(4)CMP AX,SIJO OVERFLOW(5) CMP AX,SIJGE LESS_EQ(6) CMP DX,DIJAE BELOW_EQ18. 有一个首地址为ARRAY的20个字数组,说明下列程序段的功能。 MOV CX,20 MOV AX,0 MOV SI,AXSUM_LOOP: A

22、DD AX,ARRAYSI ADD SI,2 LOOP SUM_LOOP MOV TOTAL,AX答:将首地址为ARRAY的20个字数组元素求和,将结果存放到TOTAL单元22. 已知内存中起始地址为BLOCK的数据块(字节数为COUNT)的字节数据有正有负。试编写一个程序,将其中的正、负分开,分别送至同一段中的两个缓冲区,设正、负缓冲区的首地址分别为PLUS和MINUS。答: DATA SEGMENT BLOCK DB 16 DUP(?) PLUS DB 16 DUP(?) MINUS DB 16 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS

23、:DATA START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET BLOCK MOV DI,OFFSET PLUS MOV BX,OFFSET MINUS MOV CX,COUNT NEXT:MOV AL,SI TEST AL,80H JNZ MD MOV DI,AL INC DI JMP AGAIN MD: MOV BX,AL INC BX AGAIN: INC SI LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START19. 按照下列要求,编写相应的程序段。 (1) 已知字符串STRING包含有32KB内容,将其中的

24、“$”符号替换成空格。 (2) 有一个100个字节元素的数组,其首地址为ARRAY,将每个元素减1(不考虑溢出)存于原处。 (3) 统计以“$”结尾的字符串STRING的字符个数 (4) 假设从B800H:0开始存放有16个16位无符号数,编程求它们的和,并把32位的和保存在DX、AX中。答:(1) MOV SI,0 MOV CX,8000H AGAIN:CMP STRINGSI,$ JNZ NEXT MOV STRINGSI,20H NEXT:INC SI LOOP AGAIN(2)MOV SI,0MOV CX,100 AGAIN:DEC ARRAYSI INC SI LOOP AGAIN(

25、3)XOR SI,SI COMP:CMP STRINGSI,$ JE OVER INC SI JMP COMP OVER:RET(4) MOV AX,0B800H MOV DS,AX XOR SI,SI XOR DX,DX MOV CX,0FH MOV AX,SI AGAIN:INC SI INC SI ADD AX,SI JNC NEXT INC DX NEXT:LOOP AGAIN RET 20. 编写程序,把ARRAY1和ARRAY2中20个字节数分别相加,结果放到TABLE中。 (1) 假定数据为无符号数,如果结果大于255则结果为255。 (2) 假定结果为带符号数,如果有溢出则保存

26、结果为0。答:(1) DATA SEGMENT ARRAY1 DB 20 DUP(?) ARRAY2 DB 20 DUP(?) TABLE DB 20 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,20 MOV SI,0 AGAIN:MOV AL,ARRAY1SI ADD AL,ARRAY2SI JC LABEL1 MOV TABLESI,AL JMP LABEL2 LABEL1:MOV TABLESI,255 LABEL2:INC SI LOOP AGAIN MO

27、V AH,4CH INT 21H CODE ENDS END START (2) DATA SEGMENT ARRAY1 DB 20 DUP(?) ARRAY2 DB 20 DUP(?) TABLE DB 20 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,20 MOV SI,0 AGAIN:MOV AL,ARRAY1SI ADD AL,ARRAY2SI JO LABEL1 MOV TABLESI,AL JMP LABEL2 LABEL1:MOV TABLESI,0

28、 LABEL2:INC SI LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS END START 21. 字符串ATR1保存着100个字节的ASCII码,试编写一个程序统计该字符串中空格(20H)的个数。答: DATA SEGMENT ATR1 DB 100 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,100 XOR DI,DI XOR SI,SI COMP:CMP ATR1SI,20H INC SI JNE NEXT INC DI

29、 NEXT:LOOP COMP MOV AH,4CH INT 21H CODE ENDS END START第4章 顺序、分支与循环程序设计1试编写一个程序实现将从键盘输入的小写字母用大写字母形式显示出来。答: DATA SEGMENT STRMESSAGE DB “请输入小写字符”,0DH,0AH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET STRMESSAGE MOV AH,9H INT 21H MOV AH,1 INT 21H MOV DL,AL SUB

30、 DL,20H MOV AH,2 INT 21H EXIT:MOV AH,4CH INT 21H CODE ENDS END START2在内存BUFFER单元中定义有10个16位数,试寻找其中的最大值及最小值,并放在指定的存储单元MAX和MIN中。答: DATA SEGMENT BUFFER DW 10 DUP(?) MIN DW ? MAX DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUFFER MOV AX,BX MOV DX,BX MOV SI

31、,0 MOV CX,10 MM:MOV DI,BX+SI CMP AX,DI JB T1 JMP T2 T1:CMP DX,DI JB T11 JMP T21 T11:MOV DX,DI T21:JMP ENT T2: MOV AX,DI ENT:ADD SI,2 LOOP MM MOV MAX,DX MOV MIN,AX MOV AH,4CH INT 21H CODE ENDS END START3统计字型变量DATBUF中有多少位0,多少位1,并分别记入COUNT0和COUNT1中。答: DATA SEGMENT DATBUF DW 1234H COUNT0 DB ? COUNT1 DB

32、? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,DATBUF AGAIN:CMP BX,0 JE EXIT SHL BX,1 JNC ZERO INC COUNT1 JMP AGAIN ZERO:INC COUNT0 JMP AGAIN EXIT:MOV AH,4CH INT 21H CODE ENDS END START4在BUFFER开始的单元中存放着一个字符串,请判断该字符串中是否存在数字,如有则将X单元置1,否则置0。答: DATA SEGMENT BUFFER DB

33、JAVA2COMPUTER N=$-BUFFER X DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX CLD MOV CX,N XOR SI,SI AGAIN:CMP BUFFERSI,39H JA NEXT CMP AL,30H JB NEXT MOV X,1 JMP EXIT NEXT:INC SI LOOP AGAIN MOV X,0 EXIT:MOV AH,4CH INT 21H CODE ENDS END START5设在变量单元A1、A2、A3、A4中存放4个数,试编程实现

34、将最大数保留,其余3个数清零的功能。答: DATA SEGMENT A1 DB 3 A2 DB 7 A3 DB 9 A4 DB 8 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV SI,0 MOV CX,3 MOV AL,A1SI MOV DI,0 NEXT:INC SI CMP AL,A1SI JNB NEXT1 MOV AL,A1SI MOV A1DI,0 MOV DI,SI JMP NEXT2 NEXT1:MOV A1SI,0 NEXT2:LOOP NEXT MOV AH,4CH

35、INT 21H CODE ENDS END START6已定义了两个整数变量A和B,试编写程序完成下列功能。(1) 若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中(2) 若两个数均为奇数,则将两数均加1后存回原变量。(3) 若两个数均为偶数,则两个变量均不改变。答: DATA SEGMENT A DB 13H B DB 24H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,A MOV BL,B XOR AL,BL TEST AL,01H JZ SAME TEST BL,0

36、1H JZ DONE XCHG BL,A MOV B,BL JMP DONE SAME:TEST BL,01H JZ DONE INC A INC B DONE:MOV AH,4CH INT 21H CODE ENDS END START7试编制一个程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存入AX中。答: MYDATA SEGMENT DATA DW 100 DUP(?) NUM DB 100 MYDATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:MYDATA START:MOV AX,DATA MOV DS,AX MOV CX,NUM M

37、OV SI,0 MOV AX,32766 AGAIN:TEST DATASI,1 JNZ NEXT COMPARE:CMP AX,DATASI JLE NEXT MOV AX,DATASI NEXT:ADD SI,2 LOOP AGAIN EXIT:MOV AH,4CH INT 21H CODE ENDS END START8已知从符号地址M开始的内存单元中存放有15个16位带符号数,试编制一个程序,将正数依次存放在以符号地址P开始的内存单元中,再将负数依次存放到以符号地址N开始的内存单元中,并将整数和负数的个数显示出来。答: DATA SEGMENT M DW 15 DUP(?) P DW

38、15 DUP(?) N DW 15 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,15 MOV SI,0 MOV BX,0 MOV DI,0 AGAIN:MOV AX,MSI CMP AX,0 JL STEP1 MOV PBX,AX INC BX JMP NEXT STEP1:MOV NDI,AX INC DI NEXT:INC SI LOOP AGAIN ;输出正负数据个数子程序 MOV AH,4CH INT 21H CODE ENDS END START9已知

39、数组A1中包含有15个互不相等的整数,数组A2中含有20个互不相等的整数,试编制一个程序,把既在A1又在A2中出现的整数存放在以符号地址为E开始的内存单元中。答: DATA SEGMENT A1 DW 15 DUP(?) A2 DW 20 DUP(?) E DW 15 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,15 MOV SI,0 MOV DI,0 MOV BX,0 AGAIN:MOV DX,CX MOV AX,A1SI MOV DI,0 MOV CX,20 COMPARE:CMP AX,A2DI JE MATCH

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!