Error printing string in ARM Assembly

0

Hello I'm doing a job at ARM Assembly using the Unicamp simulator and I have a problem. I need to make a simple list with the Insert, Remove, and Print options. I am able to insert items (name and price of a product), however I am doing tests for the option to print the files, and is giving the following error: Youcanseethatthenameoftheproductisprinting,butthisisgivingerrorwhenitwillprinttheprice.Anditisalsoprintingtheprogramendmessage.IfIcommentonthepartofthecodethatprintsthename,thepriceisprintednormally,soIbelievetheerrorisinthatpart.

Belowisthecode:

@---------------------------------OBSERVAÇÕES------------------------------------------/*-Registradoresreservadosparaaschamadasdosistema:r0,r1,r2,r7
  • Registradorquecontrolaaposiçãodoprodutor12*/

.global_start@ligadornecessitadesterótulo

@---------------------------------CONSTANTES------------------------------------------@tamanhodoproduto.equtam_prod_nome,255

@precodoproduto.equtam_prod_preco,4

@escolhamenu.equtam_escolha,5

@endereçodonomedoproduto.setpos_prod_nome,0x1000

@endereçodoprecodoproduto.setpos_prod_preco,0x0

_start:

movr12,#0@Contadordovetor

bemvindo:@Solicitaonomedoprodutomovr0,#1@Comandodesaidaldrr1,=msg_bemvindo@Enderecodamensagemldrr2,=len_bemvindo@Tamanhomensagemaserescritamovr7,#4@Sinalizaasaídanoconsolesvc0x055

bmenu

@----------------------------------PROGRAMMENU------------------------------------------menu:    movr1,#0

@Apresentaomenuprincipalmovr0,#1@Comandodesaidaldrr1,=msg_menu@Enderecodamensagemldrr2,=len_menu@Tamanhomensagemaserescritamovr7,#4@Sinalizaasaídanoconsolesvc0x055@Fazaleituradamensagemdigitadapelousuariomovr0,#0@Comandodeentradaldrr1,=menu_escolha@Enderecodamensagemldrr2,=tam_escolha@Tamanhomaximoaserlidomovr7,#3@Sinalizaaentradanoconsolesvc#0x55@Chamaafunçãodeacordocomaescolhacmpr1,#1@Verificaseaopçãodigitadanãoéincluirbeqcarrega_prodcmpr1,#2beqexcluircmpr1,#3beqvisualizarcmpr1,#4beqsaircmpr1,#5beqteste

@----------------------------------PRODUCTENTRY------------------------------------------load_prod:    movr5,#0@Zerotherecorder    movr6,#0@Zerotherecorder    cmpr12,#0@Checksifthereisnoproduct,ifitdoesnot,itdoesnotexecute    beqrequests_prod    bltload_prod

request_prod:    @Requestproductname    movr0,#1@Outputcommand    ldrr1,=msg_prod_name@Messageaddress    ldrr2,=len_prod_name@Messagesizetobewritten    movr7,#4@Signalstheoutputontheconsole    svc0x055

@Fazaleituradamensagemdigitadapelousuariomovr0,#0@Comandodeentradaldrr1,=produto_nome@Enderecodamensagemldrr2,=tam_prod_nome@Tamanhomaximoaserlidomovr7,#3@Sinalizaaentradanoconsolesvc#0x55@Armazenaonomedoprodutonamemórialdrr3,=pos_prod_nome@Posiçãodamemóriaqueficaráovetordeprodutosstrr1,[r3,r5]@Solicitaoprecodoprodutomovr0,#1@Comandodesaidaldrr1,=msg_prod_preco@Enderecodamensagemldrr2,=len_prod_preco@Tamanhomensagemaserescritamovr7,#4@Sinalizaasaídanoconsolesvc0x055@Fazaleituradamensagemdigitadapelousuariomovr0,#0@Comandodeentradaldrr1,=produto_preco@Enderecodamensagemldrr2,=tam_prod_preco@Tamanhomaximoaserlidomovr7,#3@Sinalizaaentradanoconsolesvc#0x55@Armazenaoprecodoprodutonamemórialdrr3,=pos_prod_preco@Posiçãodamemóriaqueficaráovetordeprodutosstrr1,[r3,r6]btesteaddr12,r12,#1bmenu

@---------------------------------EXCLUSIONOFDATA------------------------------------------delete:

@---------------------------------VIEWINGDATA------------------------------------------view:

@---------------------------------TESTING-DELETINGAFTERCONCLUDING------------------------------------------

@Displaysproductregistrationfortestingtest:    movr12,#0    ldrr3,=pos_prod_name    ldrr4,=pos_prod_preco

movr0,#1@Comandodesaidaldrr1,=msg_prod_nome_ex@Enderecodamensagemldrr2,=len_prod_nome_ex@Tamanhomensagemaserescritamovr7,#4@Sinalizaasaídanoconsolesvc0x055movr0,#1@Comandodesaidaldrr1,[r3,r12]@Enderecodamensagemldrr2,=tam_prod_nome@Tamanhomensagemaserescritamovr7,#4@Sinalizaasaídanoconsolesvc0x055movr0,#1@Comandodesaidaldrr1,=msg_prod_preco_ex@Enderecodamensagemldrr2,=len_prod_preco_ex@Tamanhomensagemaserescritamovr7,#4@Sinalizaasaídanoconsolesvc0x055movr0,#1@Comandodesaidaldrr1,[r4,#0]@Enderecodamensagemldrr2,=tam_prod_preco@Tamanhomensagemaserescritamovr7,#4@Sinalizaasaídanoconsolesvc0x055bsair

@----------------------------------USEFULFUNCTIONS------------------------------------------

@Controlsvectorpositionload_prod:    ldrr5,=pos_prod_name@Loadsthestartingpositionoftheproductname    ldrr6,=pos_prod_preco@Loadsthestartingpositionoftheproductprice    ldrr7,=tam_prod_name@Loadthesizeoftheproductname    ldrr8,=tam_prod_preco@Loadproductpricesize

btam_vetor

tam_vetor:    movr10,#0@Zerothecounter

addr5,r5,r7@Acrenta1aoindicedovetorprod_nomeaddr6,r6,r8@Acrenta1aoindicedovetorprod_precocmpr10,r12beqsolicita_prod@Seforigualvaiatéafunçãoqueoutilizaráblttam_vetor@Sefordiferente,continuaráapercorrerovetor

@---------------------------------FINISHTHEPROGRAM------------------------------------------leave:    movr0,#1@Outputcommand    ldrr1,=msg_finalization@Messageaddress    ldrr2,=len_finalizacao@Messagesizetobewritten    movr7,#4@Signalstheoutputontheconsole    svc0x055

@fazeraquioprogramafinalizar

@---------------------------------VARIABLESANDMESSAGESFORTHEUSER------------------------------------------@bufferwherestoredcharacterswillbestoredmenu_collection:    .skiptam_choose

product_name:    .skiptam_prod_name

product_preco:    .skiptam_prod_preco

@Productnamerequestmessagemsg_welcome:    .ascii"Welcome! \ n \ n"     len_bemvindo =. - msg_being

msg_menu:     .ascii "1 - Add Product \ n2 - Delete \ n3 - View \ n4 - Exit \ n5 - Test \ n \     len_menu =. - msg_menu

@Product name request message msg_prod_name:     .ascii "Enter the product name \ n"     len_prod_name =. - msg_prod_name

@Program finalization message msg_finalization:     .ascii "\ nProgram finalized \ n"     len_finalizacao =. - msg_finalization

@Product Price Request Message msg_prod_preco:     .ascii "\ nEnter the price of the product \ n"     len_prod_preco =. - msg_prod_preco

msg_prod_name:     .ascii "Name:"     len_prod_name_ex =. - msg_prod_name_ex

msg_prod_preco_ex:     .ascii "Price:"     len_prod_preco_ex =. - msg_prod_preco_ex

@ line break to display on console BreakingLine:     .ascii "\ r \ n \ r"

    
asked by anonymous 17.06.2018 / 01:20

0 answers