注册 登录
编程论坛 汇编论坛

求助:汇编语言程序分析

chenyan1 发布于 2010-10-18 20:04, 1168 次点击
   MOV CX,16
   MOV BX,0
   MOV DX,1
AG:TEST AX,DX
   JZ   NEXT
   INC    BX
NEXP:SHL DX,1
LOOP  AG
17 回复
#2
chenyan12010-10-18 20:07
回复 楼主 chenyan1
会的人立马回复下,姐姐要考试了啊!
#3
chenyan12010-10-18 20:22
怎么都没人教我呢!伤心!
#4
遮天云2010-10-18 20:24
程序代码:
MOV CX,16  ;//控制循环次数
   MOV BX,0  ;寄存器BX清零
   MOV DX,1  ; DX设置为1h
AG:TEST AX,DX  ;测试指令
   JZ   NEXT  ;JZ指令,测试结果是零就跳到 NEXT 应该是下文的NEXP吧?
   INC    BX  ;BX 的值加一
NEXP:SHL DX,1
LOOP  AG    ; 循环继续
#5
你们都要疼我哦2010-10-18 20:29
大姐姐
求牵手
#6
bobo21853552010-10-18 21:48
这个大熊猫真可爱
#7
chenyan12010-10-19 11:21
那这个程序最终执行的功能是什么??
#8
jbddd2010-10-19 11:38
寄存器是2字节,也就是说shl指令循环16次以后,又会回到1(其实是溢出)
这段代码就是判断ax和2的阶乘是否相等,否则dx*2^n,如果没有的话,所有寄存器恢复到原态:)
#9
chenyan12010-10-19 15:18
这段程序的电路图怎么画呀??
#10
xiaomarn2010-10-19 17:35
功能:
    统计AX中位值为1的个数
输入:
    AX=待检测内容
输出:
    BX=位为1的个数
EG.:   
    AX=0EA25H=1110101000100101B
    输出BX=8
#11
chenyan12010-10-19 19:27
SHL怎么实现逻辑左移的呀?搞不懂??
#12
chenyan12010-10-19 19:34
AX里面的东西怎么会是0EA25H的呢??我不懂。大家教教我!
#13
chenyan12010-10-19 19:40
不懂,不懂,能不能解释得更详细点啊??若程序执行前AX=1234H,程序段执行完后,BX寄存器中存放的内容是多少啊??大家帮帮忙!谢谢大家!解释得详细些!
#14
chenyan12010-10-19 19:47
,大家快点教教我啊!
#15
chenyan12010-10-19 20:14
SCORE    DB 56,89,76,60,35,16,100
COUNT    EQU  $ -SCORE
RS       DW ?
...
MOV      CX,COUNT
LEA      BX,SCORE
MOV      DX,0
LOP1:MOV AL,[BX]
     CMP AL,60
     JAE LOP2
     INC DX
LOP2:INC BX
     LOOP LOP1
     MOV  RS,DX
程序执行后,RS字单元中的内容是什么?
程序段的功能是社么?
LEA,CMP,LAE,INC,在这里面怎么用的呀?具体全面一点怎么分析呀?
#16
xiaomarn2010-10-20 17:34
SCORE    DB 56,89,76,60,35,16,100
COUNT    EQU  $ -SCORE
RS       DW ?
...
MOV      CX,COUNT        ;获取SCORE数组长度
LEA      BX,SCORE        ;bx指向SCORE
MOV      DX,0            ;计数器清零
LOP1:MOV AL,[BX]         ;取数组数据
     CMP AL,60            ;数据与60比较
     JAE LOP2            ;大于或等于跳转
     INC DX                ;若数据小于60,计数器加1
LOP2:INC BX                ;指针指向下一个数组单元
     LOOP LOP1            
     MOV  RS,DX            ;将score数组中小于60的数的个数存入RS单元
;功能描述:统计一个数组中小于指定数的个数
额,楼主如果连指令都不知道是干什么的话,无语ING.....
LOOP
#17
chenyan12010-10-20 22:12
二、分析下列程序,回答问题
MOV AL, 88H
OUT 83H,AL
MOV AL,00H
OUT 81H,AL
ADD AL,10H
OUT81H,AL
SUB AL,10H
OUT 81H,AL
LOP:IN AL,82H
TEST AL,80H
JZ LOP
IN AL,84H
HLT
1、画出该程序相应电路;2、这段程序完成什么功能?
三、分析程序,回答问题
MOV AL,07H
OUT 84H,AL
CALL DELAY100
1 N AL,84H
HLT
1、试画出相应电路?
2、这段程序完成什么功能?
四、分析程序,回答问题
MOV AL,81H
OUT 83H, AL
MOV AL,ODH
OUT 83H,AL
TESBY:IN AL, 82H
           TEST AL,04H
           JNI TESBY
           MOV AL,[200H]
           OUT 80H,AL
           MOV AL,OCH
           OUT 83H,AL
           INC AL
           OUT 83H,AL
           RET
1,试画出此段程序所需电路图;2,这段程序完成什么功能?
五、分析下列程序,回答问题
START:MOV DL,OF8H
MOV DI,OFFSET DSTOR
AGAIN:MOV AL,DL
AND AL, OEFH
OUT 4, AL
CALL DELAY
MOV AL,DL
OUT 4,AL
POLL:IN AL, 2
SHR AL ,T
JNC POLL
IN AL,3
STOSB      
INC DL
JNE AGAIN
1、画出此段程序对应电路;2、该段程序完成什么功能?
六、分析程序,回答问题
SHIFT  从ACRO       X, Y
              MOV        DX, X
              MOV        AX, Y
              MOV        CL, 4
              SHL         DX,CL
              MOV        BL, AH
              SHL         AX, CL
              SHR         BL, CL
              OR           DL, BL
              MOV         X, DX
              MOV         Y, AX
              ENDM
1、画出这段程序的流程图
2、这段程序完成什么功能?
七、分析程序,回答问题
DATA1 DB 300 DUP(?)
DATA2 DB 300 DUP(?)
        ...
MOV CX, 100
MOV BX, 200
MOV SL, 0
MOV DI, 0
NEXT:MOV AL, DATA [BX] [SI]
          MOV DATA2 [DI], AL
           INC SI
           INC DI
           LOOP NEXT
                    ...
1、画出此段程序流程图;
2、这段程序完成什么功能?
  
大家帮帮忙啦!
一条一条写清楚哈!谢谢!
#18
chenyan12010-10-21 18:35
好不容易弄明白一点了,大家又不教我了!伤心!
1