我有一个作业,要求我从字符串中的某个位置开始打印字符(在字符串中的任何位置),我似乎无法弄清楚如何做到这一点。这是我到目前为止尝试过的代码
SYS_EXIT equ 1
SYS_READ equ 3
SYS_WRITE equ 4
STDIN equ 0
STDOUT equ 1
segment .bss
curLen resb 1
section .text
global main
main:
mov ecx,2
mov [curLen],ecx ; Store starting position
mov edx,10 ; Only print out 10 characters
mov ecx,txt ; Load string address into register
add ecx,curLen ; Add starting position to string address
mov ebx,STDOUT ;
mov eax,SYS_WRITE
int 0x80
jmp exit
exit:
mov eax,SYS_EXIT
int 0x80
section .data
txt db 'This a string', 0x0
知道可能出现什么问题吗?理想情况下,上面的代码会打印出" is is a st
&#34 ;,它会在字符串中开始两个字符并打印出以下10个字符。
谢谢!