我正在尝试从input.txt文件读取整数,下面是我的读取循环,我试图读取并将整数存储到数组中。在使用ARM SIM的“LDR R2,[R2,R5,LSL#2] ... im”之后的任何一行上,我一直得到“访问未对齐的内存位置,错误的地址= ffffff”。有谁知道我在做什么做错了?
start:
MOV R5, #0 @int i
MOV R1, #0
swi SWI_Open
LDR R1,=InFileH
STR R0,[R1]
MOV R3, #0
readloop:
LDR R0, =InFileH
LDR R0, [R0]
swi SWI_RdInt
CMP R0, #0
BEQ readdone
@the int is now in R0
MOV R1, R0
LDR R3,=a
STR R2,[R3,R5,LSR#2]
MOV R2, R1
ADD R5, R5, #1 @i++
bal readloop
readdone:
MOV R0, #0
swi SWI_Close
swi SWI_Exit
.data
.align 4
InFileH: .skip 4
InFile: .asciz "numbers.txt"
OutFile: .asciz "numsort.txt"
OutFileH: .skip 4
NewLine: .asciz "\n"
a: .skip 400
答案 0 :(得分:0)
我在编程手臂组件时遇到了类似的问题
这是因为它期望偏移量是4的倍数
var nopage;
var jenis;
var nomerhal;
var lblname1;
halamanblogger();
function loophalaman(banyakdata) {
var html = '';
nomerkiri = parseInt(numshowpage / 2);
if (nomerkiri == numshowpage - nomerkiri) {
numshowpage = nomerkiri * 2 + 1
}
mulai = nomerhal - nomerkiri;
if (mulai < 1) mulai = 1;
maksimal = parseInt(banyakdata / postperpage) + 1;
if (maksimal - 1 == banyakdata / postperpage) maksimal = maksimal - 1;
akhir = mulai + numshowpage - 1;
if (akhir > maksimal) akhir = maksimal;
html += "<span class='showpageOf'>Page " + nomerhal + ' of ' + maksimal + "</span>";
var prevnomer = parseInt(nomerhal) - 1;
if (nomerhal > 1) {
if (nomerhal == 2) {
if (jenis == "page") {
html += '<span class="showpage"><a href="' + home_page + '">' + upPageWord + '</a></span>'
} else {
html += '<span class="showpageNum"><a href="/search/label/' + lblname1 + '?&max-results=' + postperpage + '">' + upPageWord + '</a></span>'
}
} else {
if (jenis == "page") {
html += '<span class="showpageNum"><a href="#" onclick="redirectpage(' + prevnomer + ');return false">' + upPageWord + '</a></span>'
} else {
html += '<span class="showpageNum"><a href="#" onclick="redirectlabel(' + prevnomer + ');return false">' + upPageWord + '</a></span>'
}
}
}
if (mulai > 1) {
if (jenis == "page") {
html += '<span class="showpageNum"><a href="' + home_page + '">1</a></span>'
} else {
html += '<span class="showpageNum"><a href="/search/label/' + lblname1 + '?&max-results=' + postperpage + '">1</a></span>'
}
}
if (mulai > 2) {
html += ' ... '
}
for (var jj = mulai; jj <= akhir; jj++) {
if (nomerhal == jj) {
html += '<span class="showpagePoint">' + jj + '</span>'
} else if (jj == 1) {
if (jenis == "page") {
html += '<span class="showpageNum"><a href="' + home_page + '">1</a></span>'
} else {
html += '<span class="showpageNum"><a href="/search/label/' + lblname1 + '?&max-results=' + postperpage + '">1</a></span>'
}
} else {
if (jenis == "page") {
html += '<span class="showpageNum"><a href="#" onclick="redirectpage(' + jj + ');return false">' + jj + '</a></span>'
} else {
html += '<span class="showpageNum"><a href="#" onclick="redirectlabel(' + jj + ');return false">' + jj + '</a></span>'
}
}
}
if (akhir < maksimal - 1) {
html += '...'
}
if (akhir < maksimal) {
if (jenis == "page") {
html += '<span class="showpageNum"><a href="#" onclick="redirectpage(' + maksimal + ');return false">' + maksimal + '</a></span>'
} else {
html += '<span class="showpageNum"><a href="#" onclick="redirectlabel(' + maksimal + ');return false">' + maksimal + '</a></span>'
}
}
var nextnomer = parseInt(nomerhal) + 1;
if (nomerhal < maksimal) {
if (jenis == "page") {
html += '<span class="showpageNum"><a href="#" onclick="redirectpage(' + nextnomer + ');return false">' + downPageWord + '</a></span>'
} else {
html += '<span class="showpageNum"><a href="#" onclick="redirectlabel(' + nextnomer + ');return false">' + downPageWord + '</a></span>'
}
}
var pageArea = document.getElementsByName("pageArea");
var blogPager = document.getElementById("blog-pager");
for (var p = 0; p < pageArea.length; p++) {
pageArea[p].innerHTML = html
}
if (pageArea && pageArea.length > 0) {
html = ''
}
if (blogPager) {
blogPager.innerHTML = html
}
}
function hitungtotaldata(root) {
var feed = root.feed;
var totaldata = parseInt(feed.openSearch$totalResults.$t, 10);
loophalaman(totaldata)
}
function halamanblogger() {
var thisUrl = urlactivepage;
if (thisUrl.indexOf("/search/label/") != -1) {
if (thisUrl.indexOf("?updated-max") != -1) {
lblname1 = thisUrl.substring(thisUrl.indexOf("/search/label/") + 14, thisUrl.indexOf("?updated-max"))
} else {
lblname1 = thisUrl.substring(thisUrl.indexOf("/search/label/") + 14, thisUrl.indexOf("?&max"))
}
}
if (thisUrl.indexOf("?q=") == -1 && thisUrl.indexOf(".html") == -1) {
if (thisUrl.indexOf("/search/label/") == -1) {
jenis = "page";
if (urlactivepage.indexOf("#PageNo=") != -1) {
nomerhal = urlactivepage.substring(urlactivepage.indexOf("#PageNo=") + 8, urlactivepage.length)
} else {
nomerhal = 1
}
document.write("<script src=\"" + home_page + "feeds/posts/summary?max-results=1&alt=json-in-script&callback=hitungtotaldata\"><\/script>")
} else {
jenis = "label";
if (thisUrl.indexOf("&max-results=") == -1) {
postperpage = 20
}
if (urlactivepage.indexOf("#PageNo=") != -1) {
nomerhal = urlactivepage.substring(urlactivepage.indexOf("#PageNo=") + 8, urlactivepage.length)
} else {
nomerhal = 1
}
document.write('<script src="' + home_page + 'feeds/posts/summary/-/' + lblname1 + '?alt=json-in-script&callback=hitungtotaldata&max-results=1" ><\/script>')
}
}
}
function redirectpage(numberpage) {
jsonstart = (numberpage - 1) * postperpage;
nopage = numberpage;
var nBody = document.getElementsByTagName('head')[0];
var newInclude = document.createElement('script');
newInclude.type = 'text/javascript';
newInclude.setAttribute("src", home_page + "feeds/posts/summary?start-index=" + jsonstart + "&max-results=1&alt=json-in-script&callback=finddatepost");
nBody.appendChild(newInclude)
}
function redirectlabel(numberpage) {
jsonstart = (numberpage - 1) * postperpage;
nopage = numberpage;
var nBody = document.getElementsByTagName('head')[0];
var newInclude = document.createElement('script');
newInclude.type = 'text/javascript';
newInclude.setAttribute("src", home_page + "feeds/posts/summary/-/" + lblname1 + "?start-index=" + jsonstart + "&max-results=1&alt=json-in-script&callback=finddatepost");
nBody.appendChild(newInclude)
}
function finddatepost(root) {
post = root.feed.entry[0];
var timestamp1 = post.published.$t.substring(0, 19) + post.published.$t.substring(23, 29);
var timestamp = encodeURIComponent(timestamp1);
if (jenis == "page") {
var alamat = "/search?updated-max=" + timestamp + "&max-results=" + postperpage + "#PageNo=" + nopage
} else {
var alamat = "/search/label/" + lblname1 + "?updated-max=" + timestamp + "&max-results=" + postperpage + "#PageNo=" + nopage
}
location.href = alamat
}
上面的指令抛出类似的错误。因此使用
STR R2, [R1, #2]
为了更好地理解clickhere