
《汇编语言程序设计》复习题答案求救,分析题!高分,谢谢!
五.分析程序并写出功能与结果41.有一段程序如下:……MOVCX,64HLEASI,NAME1LEADI,NAME2REPMOVSB……这段程序完成什么动作:42.分析下...
五.分析程序并写出功能与结果
41.有一段程序如下:
…
…
MOV CX,64H
LEA SI,NAME1
LEA DI,NAME2
REP MOVSB
…
…
这段程序完成什么动作:
42.分析下列程序段执行或,A单元的内容是什么?
DATA SEGMENT
A DW 0
B DW 0
C DW 15H,5H,50H
DATA ENDS
CODE SEGMENT
.
.
MOV BX,OFFSET C
MOV AX,[BX]
MOV B,AX
MOV AX,2[BX]
ADD AX,B
MOV A,AX
.
.
CODE ENDS
A 单元的结果是
六.程序填空
本程序实现将,BX寄存器内的2进制数用16进制的形式,在屏幕上显示出来,请将没写完的空格填上。
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
PUSH DS
SUB AX,AX
AX
MOV CH,
ROTATE:
MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,
ADD AL,30H
CMP AL ,
JL PRINTIT
ADD AL,7H
PRINTIT:
MOV DL,AL
MOV AH,2
INT 21H
DEC
JNZ ROTATE
RET
MAI ENDP
CODE ENDS
END START 展开
41.有一段程序如下:
…
…
MOV CX,64H
LEA SI,NAME1
LEA DI,NAME2
REP MOVSB
…
…
这段程序完成什么动作:
42.分析下列程序段执行或,A单元的内容是什么?
DATA SEGMENT
A DW 0
B DW 0
C DW 15H,5H,50H
DATA ENDS
CODE SEGMENT
.
.
MOV BX,OFFSET C
MOV AX,[BX]
MOV B,AX
MOV AX,2[BX]
ADD AX,B
MOV A,AX
.
.
CODE ENDS
A 单元的结果是
六.程序填空
本程序实现将,BX寄存器内的2进制数用16进制的形式,在屏幕上显示出来,请将没写完的空格填上。
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
PUSH DS
SUB AX,AX
AX
MOV CH,
ROTATE:
MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,
ADD AL,30H
CMP AL ,
JL PRINTIT
ADD AL,7H
PRINTIT:
MOV DL,AL
MOV AH,2
INT 21H
DEC
JNZ ROTATE
RET
MAI ENDP
CODE ENDS
END START 展开
4个回答
展开全部
41答案如下:
SI是源地址寄存器,DI是目的地址寄存器,就是以源地址寄存器[SI]开始的64H个字节里面的内容,复制到以[DI]为始址的空间中去。CX是计数器嘛,就是复制64H个字节的内容,MOVSB就是MOV 以 B为单位!
42答案如下:
DATA SEGMENT
A DW 0
B DW 0
C DW 15H,5H,50H
DATA ENDS
CODE SEGMENT
.
.
MOV BX,OFFSET C
MOV AX,[BX] ;这一步后,AX=[BX]=15H
MOV B,AX ;B=15H
MOV AX,2[BX] ;2[BX]的意思是[BX+2],所以AX=05H
ADD AX,B ;15H+05H=1AH
MOV A,AX ;最后是1AH
六.程序填空
第一空 0FH
第二空 4AH.
这一题的基本思想就是把 BX 循环右移四位,取BL,赋给AL,与上0FH,把高四位清零,得低四位,再加上30H,判断是否超过A,因为A的ASCLL与0-9的ASCLL码不是连续的,所以要根据判断结果再加上07H,就这样了。
我原是汇编科代表呢!!哈哈
SI是源地址寄存器,DI是目的地址寄存器,就是以源地址寄存器[SI]开始的64H个字节里面的内容,复制到以[DI]为始址的空间中去。CX是计数器嘛,就是复制64H个字节的内容,MOVSB就是MOV 以 B为单位!
42答案如下:
DATA SEGMENT
A DW 0
B DW 0
C DW 15H,5H,50H
DATA ENDS
CODE SEGMENT
.
.
MOV BX,OFFSET C
MOV AX,[BX] ;这一步后,AX=[BX]=15H
MOV B,AX ;B=15H
MOV AX,2[BX] ;2[BX]的意思是[BX+2],所以AX=05H
ADD AX,B ;15H+05H=1AH
MOV A,AX ;最后是1AH
六.程序填空
第一空 0FH
第二空 4AH.
这一题的基本思想就是把 BX 循环右移四位,取BL,赋给AL,与上0FH,把高四位清零,得低四位,再加上30H,判断是否超过A,因为A的ASCLL与0-9的ASCLL码不是连续的,所以要根据判断结果再加上07H,就这样了。
我原是汇编科代表呢!!哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,就是把DS:[SI]的一百个字节单元的内容传送到ES:[DI]开始的一百个字节单元中。
2,A=001AH
3,
---------------------------
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
PUSH DS
SUB AX,AX
MOV CH,4
ROTATE:
MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL PRINTIT
ADD AL,7H
PRINTIT:
MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ ROTATE
POP DS
RET
MAIN ENDP
CODE ENDS
END START
2,A=001AH
3,
---------------------------
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
PUSH DS
SUB AX,AX
MOV CH,4
ROTATE:
MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL PRINTIT
ADD AL,7H
PRINTIT:
MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ ROTATE
POP DS
RET
MAIN ENDP
CODE ENDS
END START
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不懂。。。。。
不过你真的。。。。
不过你真的。。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MOV CX,64H
LEA SI,NAME1
LEA DI,NAME2
REP MOVSB
…
…
这段程序完成不就是重复执行将name1内存里面的内容放入name2中去呀,重复执行cx中指定的100次
下面的题目全是汇编语言相关的,你只要复习下课本,就可以做到了,题目不难
LEA SI,NAME1
LEA DI,NAME2
REP MOVSB
…
…
这段程序完成不就是重复执行将name1内存里面的内容放入name2中去呀,重复执行cx中指定的100次
下面的题目全是汇编语言相关的,你只要复习下课本,就可以做到了,题目不难
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询