Easy68k assembler Ok, This is what i\'ve done already and im stuck! YELP! ORG $1
ID: 675468 • Letter: E
Question
Easy68k assembler
Ok, This is what i've done already and im stuck! YELP!
ORG $1000
START:
* ~ Program ~
; Input String
move.b #14, d0
lea String, a1
trap #15
; read the string
move.b #2, d0
lea $2000, a1
trap #15
move.w d1,d2
; print the string and length
move.b #14, d0
lea msgString, a1
trap #15
lea $2000, a1
trap #15
lea msgLength, a1
trap #15
move.w d2, d1
move.b #3, d0
trap #15
SIMHALT ; halt simulator
* Put variables and constants here
LF EQU $0A
CR EQU $0D
String dc.b LF,'Write a String: ',0
msgString dc.b CR,LF,'The String: ',0
msgLength dc.b CR,LF,'Length: ',0
Palindrome dc.b CR,LF,'the string is palindrome',0
notPalindrome dc.b CR,LF,'the string is not palindrome',0
END START ; last line of source
Explanation / Answer
Answer:
DATA SEGMENT
STR1 DB "ENTER YOUR INPUT STRING HERE ->$"
STR2 DB "THE GIVEN INPUT STRING IS ->$"
STR3 DB "REVERSE OF GIVEN STRING IS ->$"
INSTR1 DB 20 DUP("$")
RSTR DB 20 DUP("$")
NEWLINE DB 10,13,"$"
N DB ?
S DB ?
MSG1 DB "THE ENTERED STRING IS PALINDROME$"
MSG2 DB "THE ENTERED STRING IS NOT PALINDROME$"
A DB "1"
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA SI,INSTR1
;GET THE STRING
MOV AH,09H
LEA DX,STR1
INT 21H
MOV AH,0AH
MOV DX,SI
INT 21H
MOV AH,09H
LEA DX,NEWLINE
INT 21H
;PRINT THE ENTERED STRING
MOV AH,09H
LEA DX,STR2
INT 21H
MOV AH,09H
LEA DX,INSTR1+2
INT 21H
MOV AH,09H
LEA DX,NEWLINE
INT 21H
;PRINT THE REVERSE OF THE ENTERED STRING
MOV AH,09H
LEA DX,STR3
INT 21H
MOV CL,INSTR1+1
ADD CL,1
ADD SI,2
K1:
INC SI
CMP BYTE PTR[SI],"$"
JNE K1
DEC SI
LEA DI,RSTR
K2:MOV AL,BYTE PTR[SI]
MOV BYTE PTR[DI],AL
DEC SI
INC DI
LOOP K2
MOV AH,09H
LEA DX,NEWLINE
INT 21H
MOV AH,09H
LEA DX,RSTR
INT 21H
MOV AH,09H
LEA DX,NEWLINE
INT 21H
;PRINT THE STRING IS WEATHER PALINDROME OR NOT
LEA SI,INSTR1
LEA DI,RSTR
MOV AH,09H
LEA DX,NEWLINE
INT 21H
ADD SI,2
K7:
MOV BL,BYTE PTR[DI]
CMP BYTE PTR[SI],BL
JNE KK2
INC SI
INC DI
MOV BL,BYTE PTR[DI]
MOV AH,02H
MOV DL,BL
INT 21H
MOV AH,09H
LEA DX,NEWLINE
INT 21H
CMP BYTE PTR[DI],"$"
JNE K7
MOV AH,09H
LEA DX,NEWLINE
INT 21H
MOV AH,09H
LEA DX,MSG1
INT 21H
JMP K5
KK2:
MOV AH,09H
LEA DX,NEWLINE
INT 21H
MOV AH,09H
LEA DX,MSG2
INT 21H
K5:
MOV AH,4CH
INT 21H
CODE ENDS
END START
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.