汇编考试题目求解
马上就要汇编考试了,很多题目都不会做,那位大侠能帮忙看一下啊!求解啊!!判断题,下面两个是正确的还是错误的?
1.MOV SI,[SI]
2.OUT [BX],AL
四、程序分析
1.执行完程序后,回答指定的问题。
MOV AX,0
MOV BX,2
MOV CX,50
LP: ADD AX,BX
ADD BX,2
LOOP LP
问:(1)该程序的功能是( )。
(2)程序执行完成后,(AX)=( )。
2.执行完程序后,回答指定的问题。
MOV AX,200H
MOV BX,500H
MOV [BX+10H],30H
ADD AX,[BX+10H]
LEA SI,[BX+10H
MOV BX,AX
问:该程序段执行后,SI=( )。BX=( )。
[font=宋体][size=10.5pt]六、填语句[/size][/font][size=10.5pt][/size]
[font=Times New Roman]1[/font][font=宋体].从键盘输入一个十六进制数码,转换成二进制数放入[/font][font=Times New Roman]HEXNUM[/font][font=宋体]单元,在括号上填入适当的语句。[/font]
[font=宋体]HEXNUM DB ?
MOV AH,( )
INT 21H
CMP AL,39H
NEXT ( )
SUB AH,( )
NEXT: SUB AL,30H
MOV HEXNUM,AL
HLT[/font]
[font=Times New Roman]
[/font][font=Times New Roman]2[/font][font=宋体].已知从[/font][font=Times New Roman]BUF[/font][font=宋体]单元起存有若干带符号数,将其中的正数找出并存入[/font][font=Times New Roman]PLUS[/font][font=宋体]单元,负数存入[/font][font=Times New Roman]MINUS[/font][font=宋体]单元,把下列程序填充完整。[/font]
[font=Times New Roman]DATA SEGMENT
BUF DB 12,-2,3,4,-80,-1,6,8,-11,-23
CN EQU $-BUF
PLUS DB CN DUP(?)
MINUS DB CN DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUF
MOV DI,OFFSET PLUS
MOV BX,OFFSET MINUS
MOV CX, ( )
NEXT: MOV AL,[SI]
INC SI
TEST AL,80H
( ) PP
MOV [DI],AL
INC ( )
JMP LP
PP: MOV [BX],AL
( ) BX
LP: ( ) NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
[/font]
[font=宋体][size=10.5pt]七、程序设计[/size][/font][size=10.5pt][/size]
[font=Times New Roman]1[/font][font=宋体].大小写字母互换[/font]
[font=宋体]([/font][font=Times New Roman]1[/font][font=宋体])设内存数据区有大小写混合英文[/font][font=Times New Roman]ASCII[/font][font=宋体]字母。将其转换为全部大写和全部小写,并在屏幕显示这[/font][font=Times New Roman]3[/font][font=宋体]种字母。字母显示用[/font][font=Times New Roman]DOS[/font][font=宋体]功能[/font][font=Times New Roman]9[/font][font=宋体]号调用。[/font]
[font=宋体]([/font][font=Times New Roman]2[/font][font=宋体])程序算法:大小写英文字母互换,查[/font][font=Times New Roman]ASCII[/font][font=宋体]码字符表可知,字母[/font][font=Times New Roman]A~Z[/font][font=宋体]的[/font][font=Times New Roman]ASCII[/font][font=宋体]码是[/font][font=Times New Roman]41H~5AH[/font][font=宋体],字母[/font][font=Times New Roman]a~z[/font][font=宋体]的[/font][font=Times New Roman]ASCII[/font][font=宋体]码是[/font][font=Times New Roman]61H~7AH[/font][font=宋体]。两种字母转换只需加减[/font][font=Times New Roman]20H[/font][font=宋体]即可。[/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[font=Times New Roman] [/font]
[[italic] 本帖最后由 shooterboy 于 2007-11-29 11:39 编辑 [/italic]] 我来试试
判断题,下面两个是正确的还是错误的?
1.MOV SI,[SI] 对
2.OUT [BX],AL 不大清楚,out的目的操作数,好像只能是立即数和dx,所以我猜这个是错的
四、程序分析
1.执行完程序后,回答指定的问题。
MOV AX,0
MOV BX,2
MOV CX,50
LP: ADD AX,BX
ADD BX,2
LOOP LP
问:(1)该程序的功能是( 计算2+4+6+.....+100 )。
(2)程序执行完成后,(AX)=( 2550 )。
2.执行完程序后,回答指定的问题。
MOV AX,200H
MOV BX,500H
MOV [BX+10H],30H 这一句有问题吧
ADD AX,[BX+10H]
LEA SI,[BX+10H
MOV BX,AX
问:该程序段执行后,SI=(510H)。BX=(500H)。
六、填语句
1.从键盘输入一个十六进制数码,转换成二进制数放入HEXNUM单元,在括号上填入适当的语句。
HEXNUM DB ?
MOV AH,(01H)
INT 21H
CMP AL,39H
( jbe ) NEXT
SUB AH,(6H)
NEXT: SUB AL,30H
MOV HEXNUM,AL
HLT
2.已知从BUF单元起存有若干带符号数,将其中的正数找出并存入PLUS单元,负数存入MINUS单元,把下列程序填充完整。
DATA SEGMENT
BUF DB 12,-2,3,4,-80,-1,6,8,-11,-23
CN EQU $-BUF
PLUS DB CN DUP(?)
MINUS DB CN DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUF
MOV DI,OFFSET PLUS
MOV BX,OFFSET MINUS
MOV CX, (CN)
NEXT: MOV AL,[SI]
INC SI
TEST AL,80H
(jnz) PP
MOV [DI],AL
INC (di)
JMP LP
PP: MOV [BX],AL
(inc) BX
LP: (loop) NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
上面写的我都没有在编译器上测试过,所以不保证正确,后面两个程序都挺简单的,LZ自己练练手吧
[[italic] 本帖最后由 永夜的极光 于 2007-11-29 14:11 编辑 [/italic]] OUT [BX],AL ?
这个是错误地
OUT 是端口写命令
对于端口号0~FFH
可以直接写OUT 15H,al/ax ;al或者ax传输数据
对于端口号>256号时候
写OUT DX,al/ax ;先把端口号存入DX中 [em01] ,谢谢各位的帮忙,小弟就要上战场了,希望能过关哦
页:
[1]
