1、在下面程序段的每个空中填入一个语句,以实现Z=|X-Y|,设X,Y,Z为字数据的无符号变量名称。
MOV AX,
CMP AX,Y
JB NEXT
SUB AX,Y
(2)
NEXT:MOV AX,Y
SUB AX,X
DONE:(3)
2、现有下列数据段定义:
DATA SEGMENT
STR1 DB ‘ABCDEFGHIJKL’
COUNT EQU $-STR1
BUF DB COUNT DUP(0)
DATA ENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区,试把程序中所空缺的指令填上。
MOV SI,OFFSET BUF-1
MOV DI,OFFSET BUF
MOV CX,COUNT
(4)
LOP: MOVSB
(5)
LOOP LOP
3、在BUFFER为起始地址的字节存储区域中存放在N个有符号数,编写一个程序统计该数据区中正数、负数和零的个数。请在程序的空格处填入适当指令使其完整。
LEA SI,BUFFER
XOR AX,AX
MOV BX,AX
MOV DX,AX
MOV CX,N
AR1: MOV AX,[SI ]
CMP AX,0
(6)
JNS AR3
INC DL
(7)
AR2:INC BH JMP AR4
AR3:INC BL
AR4: (8)
(9)
HLT
------解决方案--------------------------------------------------------
有过类似的题,lz搜一下论坛
------解决方案--------------------------------------------------------
1.
MOV AX,Z;这之前好像少个z
CMP AX,Y
JB NEXT
SUB AX,Y
JMP DONE;(2)
NEXT:MOV AX,Y
SUB AX,X
DONE:MOV Z,AX;(3)
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
另外
JB NEXT是不是lz自己填的?
这个应该是 JNZ NEXT 吧
------解决方案--------------------------------------------------------
作业吧,自己调试一下不就行了?
------解决方案--------------------------------------------------------
3.
LEA SI,BUFFER
XOR AX,AX
MOV BX,AX
MOV DX,AX
MOV CX,N
AR1: MOV AX,[SI ]
CMP AX,0
JS AR2 ;(6)
JNS AR3
INC DL
JMP AR4;(7)
AR2:INC BH JMP AR4
AR3:INC BL
AR4: INC SI;(8)
DEC CX;我自己加的
JNZ AR1;(9)
HLT
------解决方案--------------------------------------------------------
第二个题
LOP: MOVSB
这行应该是打错了,不能猜出原来是什么样的