汇编练习及答案(3)

2019-01-19 14:32

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:

MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, STACK MOV SS, AX LEA SP, TOP MOV CX, N LEA SI, ASC1 ADD SI, CX LEA DI, ASC2 L1:

DEC SI MOV AL, [SI]

MOV [DI], AL INC DI LOOP L1

MOV AH, 4CH ;返回DOS MOV AL, 0

INT 21H CODE ENDS

19. 解:程序如下:

STACK SEGMENT STACK 'STACK' DW 100H DUP(?) TOP LABEL WORD STACK ENDS DATA SEGMENT

VAR DW 2100, 1750, 2410 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:

MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, STACK MOV SS, AX LEA SP, TOP

MOV AX, VAR CMP AX, VAR+2 JBE L1 XCHG AX, VAR+2

L1:

CMP AX, VAR+4 JBE L2 XCHG AX, VAR+4 L2:

MOV VAR, AX MOV AX, VAR+2 CMP AX, VAR+4 JBE L3 XCHG AX, VAR+4 MOV VAR+2, AX L3:

MOV AH, 4CH ;返回 DOS MOV AL, 0

INT 21H CODE ENDS END START

如果VAR中保存的为有符号数,则只需将上述程序中的3条JBE指令改成JLE指令。

21. 解:

XOR DX, DX MOV CX, 8 L1:

SHL BL, 1 RCL DX, 1 SHL AL, 1 RCL DX, 1 LOOP L1

23. 解:假设字变量VAR1、VAR2和VAR3中至少有两个相等,程序段如下:

MOV AX, VAR1 CMP AX, VAR2 JNZ L1

CMP AX, VAR3 JNZ L2 MOV AX, -1 L1:

CMP AX, VAR3 JNZ L3

MOV AX, VAR2 LEA SI, VAR2 JMP L4 L3:

LEA SI,VAR1 JMP L4 L2:

MOV AX, VAR3 LEA SI, VAR3 L4:

25. 答:(BX)=C02DH

32. 提示:在n个字节变量中存入1,每次报数时相当于加上该变量的内容;当报数到m

时该人出列,相当于使变量内容为0,其编号为其相当偏移地址,因此最好采用寄存器相当寻址方式。这样处理的好处是,继续报数时不必考虑已出列的人,只是他们对后续报数的影响是加0,也就是说他已不起作用。 34. 提示:显示部分应调用33题编写的显示子程序。 43. 解:定义的宏指令如下: TRANSSEG MACRO DATA

MOV AX, DATA MOV DS, AX MOV ES, AX ENDM 44. 解:定义的宏指令如下: INPUTSTR MACRO BUF

LEA DX, BUF MOV AH, 0AH INT 21H ENDM 45. 解:定义的宏指令如下:

DISPSTR MACRO BUF LEA DX, BUF MOV AH, 09 INT 21H ENDM

50. 答:从缓冲区FIRST传送100个字节到SECOND缓冲区。

51. 答:在STRING缓冲区中,找到第一个非空格字符时转到FOUND。


汇编练习及答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:护理文件记录单书写规范及要求(2014新修订)(DOC)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: