CISC2001 任务设计方式

设计、编码和测试/调试Aarch64汇编程序,该程序执行以下操作:

1。读取一行包含1到100个字节的字符;

2.字符/字节表示Unicode字符的UTF-8编码;

3.统计输入流中Unicode字符的数量;

4.计数结果应作为程序的退出代码返回,返回代码如下:

CISC2001 Lab Project Assignment
Nov, 2023
2 Assembly Programming Project 2.1 Task Description
Design, code and test/debug an Aarch64 assembly program that performs the following: 1. Read in a line of character which contains from 1 to 100 bytes;
2. The characters/bytes represent UTF-8 encoding of Unicode Character;
3. Count the number of Unicode characters in the input stream;
4. The result of the count should return as the exit code of the program with the following code:
1 Reminder
• Deadline: Before the final exam
...
// Read in the string with syscall to read(fd , ∗buffer , len) mov x0, #0 // fd for stdin
ldr x1, =buffer // load the address of buffer to x1
1 2 3 4 5 6 7 8 9
Note: Since UTF-8 is a variable-length encoding scheme, the number of Unicode characters will not be the same as the number of bytes in the input string.
mov x2, #200 mov w8, #63
svc #0
// number of character to be read
// syscall# for read // invoke the syscall
// // //
after the call , the number of byte read in should stored in x0 and the input bytes are store in buffer
This is the part that you should work on your magic
//
//
mov x0, x1 //save the result as exit code in x0 mov w8, #93 // service # for exit
svc #0
i . e . , count the number of Unicode character in the buffer
After that, assumed that the result was found and stored in x1
12.2 Testing
• To test your program, you can
1. 2.
1
3.
1 2 3
download the test-tools.zip file in the attachment files;
copy the file to your emulator in the same directory as your source file, using the scp
command; (path-1 means the path of test-tools.zip under emulator (windows/macOS)) scp −P 8022 path−1 ubuntu@localhost :/home/ubuntu/
run the following
unzip test−tools . zip chmod+x tester.sh
./ tester . sh yourprogram
Where yourprogram is the name of your assembly program. For the first two instructions, you only need to run them once. After that, each time you modify your source code, you only need to run the last instruction to test your updated program.
• If the unzip program is not available in your system, you need to first install it with: 1 sudo apt install unzip
• Note:
– The test-tools.zip is now the final version. It has all the 9 seen test cases. When grading
your assignment, an additional unseen test case will be added to the test system.
– For some of the test data, you can see the actual content if you open them in a text editor. Just keep in mind that there is an invisible ”\n” at the end of each data file. So, the number of characters in the data should be one more than what you see inside the file.
2.3 Requirements
• The project should be completed by at most two students in a group;
• Write the complete information about your group members at the beginning of your source
as remarks:
1 // Group Members:
2 // 1. A−B0−1357−9 Chan Tai Man 3 // 2. A−B0−2468−0 Lie Kai Ian
• Submissions that fail to achieve any one of the following will receive 0 marks:
– The submission must be made on or before the deadline;
– The submission must be the source code file of the assembled language program; (i.e.: filename.s)
– The program must be free of syntax error and must be able to be assembled and linked successfully by the test system;
– The program must pass at least one of the test cases in the test system;
wechat  codinghelp 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值