请使用尽量简短的汇编语言分别实现下面3个不同的程序,需要完成的程序,谢谢了
答案:2 悬赏:0 手机版
解决时间 2021-02-04 10:58
- 提问者网友:箛茗
- 2021-02-03 16:01
请使用尽量简短的汇编语言分别实现下面3个不同的程序,需要完成的程序,谢谢了
最佳答案
- 五星知识达人网友:山有枢
- 2021-02-03 16:45
第一个程序:
**********************************
.MODEL SMALL
.DATA
BUF DB 1, 2, 33, -24, 35, -66, -80, -109, 124, 4, -8, 41, 39, -82, 50, 0
PX DB 16 DUP(0)
NX DB 16 DUP(0)
.CODE
.STARTUP
MOV CX, 16
LEA SI, BUF
LEA BX, PX
LEA DI, NX
AGAIN:
MOV AL, [SI]
AND AL, AL
JS TO_NX
MOV [BX], AL
INC BX
JMP NEXT
TO_NX:
MOV [DI], AL
INC DI
NEXT:
INC SI
LOOP AGAIN
.EXIT
END
第二个程序:
**********************************
.MODEL SMALL
.DATA
X DB ?
Y DB ?
.CODE
.STARTUP
MOV AL, X
CMP AL, 0
JG PX
JL NX
MOV Y,0
JMP EXIT
PX:
MOV Y, 1
JMP EXIT
NX:
MOV Y, -1
EXIT:
.EXIT
END
第三个程序:
**********************************
.MODEL SMALL
.DATA
STR_O DB 'Assembly Language Programming'
SLEN EQU $-STR_O
STR_R DB SLEN DUP(?)
.CODE
.STARTUP
LEA BX, STR_O
MOV CX, SLEN
CONV:
MOV AL, [BX]
CMP AL, 'A'
JB SKIP
CMP AL, 'Z'
JA SKIP
ADD AL, 20H
MOV [BX], AL
SKIP:
INC BX
LOOP CONV
LEA DI, STR_R
MOV CX, SLEN
REVER:
MOV AL, [BX]
MOV [DI], AL
INC DI
DEC BX
LOOP REVER
.EXIT
END追问O(∩_∩)O谢谢啊,能劳烦您顺便翻译下第三题的大概意思吗?有点看不懂。追答调试了一下,第三个程序还有一处小错误,需要在 REVER: 这一行的前面加一行 DEC BX。
否则,会漏掉一个字母。
第三题的意思是:
编一个满足下列要求的程序:定义STR_O 内容为“Assembly Language Programming”。将其中的大写字母转成小写。然后将它按从右到左的顺序保存到STR_R里,也就是STR_R里的字符串字母顺序是反过来的。
**********************************
.MODEL SMALL
.DATA
BUF DB 1, 2, 33, -24, 35, -66, -80, -109, 124, 4, -8, 41, 39, -82, 50, 0
PX DB 16 DUP(0)
NX DB 16 DUP(0)
.CODE
.STARTUP
MOV CX, 16
LEA SI, BUF
LEA BX, PX
LEA DI, NX
AGAIN:
MOV AL, [SI]
AND AL, AL
JS TO_NX
MOV [BX], AL
INC BX
JMP NEXT
TO_NX:
MOV [DI], AL
INC DI
NEXT:
INC SI
LOOP AGAIN
.EXIT
END
第二个程序:
**********************************
.MODEL SMALL
.DATA
X DB ?
Y DB ?
.CODE
.STARTUP
MOV AL, X
CMP AL, 0
JG PX
JL NX
MOV Y,0
JMP EXIT
PX:
MOV Y, 1
JMP EXIT
NX:
MOV Y, -1
EXIT:
.EXIT
END
第三个程序:
**********************************
.MODEL SMALL
.DATA
STR_O DB 'Assembly Language Programming'
SLEN EQU $-STR_O
STR_R DB SLEN DUP(?)
.CODE
.STARTUP
LEA BX, STR_O
MOV CX, SLEN
CONV:
MOV AL, [BX]
CMP AL, 'A'
JB SKIP
CMP AL, 'Z'
JA SKIP
ADD AL, 20H
MOV [BX], AL
SKIP:
INC BX
LOOP CONV
LEA DI, STR_R
MOV CX, SLEN
REVER:
MOV AL, [BX]
MOV [DI], AL
INC DI
DEC BX
LOOP REVER
.EXIT
END追问O(∩_∩)O谢谢啊,能劳烦您顺便翻译下第三题的大概意思吗?有点看不懂。追答调试了一下,第三个程序还有一处小错误,需要在 REVER: 这一行的前面加一行 DEC BX。
否则,会漏掉一个字母。
第三题的意思是:
编一个满足下列要求的程序:定义STR_O 内容为“Assembly Language Programming”。将其中的大写字母转成小写。然后将它按从右到左的顺序保存到STR_R里,也就是STR_R里的字符串字母顺序是反过来的。
全部回答
- 1楼网友:酒者煙囻
- 2021-02-03 17:03
劳驾翻译一下吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯