当前位置: 代码迷 >> 汇编语言 >> 程序分析题 求回答。解决思路
  详细解决方案

程序分析题 求回答。解决思路

热度:3225   发布时间:2013-02-26 00:00:00.0
程序分析题 求回答。。
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)
------解决方案--------------------------------------------------------
探讨
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
这行应该是打错了,不能猜出原来是什么样的
  相关解决方案