📄 strngcpy.$
字号:
.SECT .TEXTstcstart: ! 1 PUSH mesg1 ! 2 PUSH mesg2 ! 3 CALL strngcpy ! 4 ADD SP,4 ! 5 PUSH 0 ! 6 PUSH 1 ! 7 SYS ! 8strngcpy: ! 9 PUSH CX ! 10 PUSH SI ! 11 PUSH DI ! 12 PUSH BP ! 13 MOV BP,SP ! 14 MOV AX,0 ! 15 MOV DI,10(BP) ! 16 MOV CX,-1 ! 17 REPNZ SCASB ! 18 NEG CX ! 19 DEC CX ! 20 MOV SI,10(BP) ! 21 MOV DI,12(BP) ! 22 PUSH DI ! 23 REP MOVSB ! 24 CALL stringpr ! 25 MOV SP,BP ! 26 POP BP ! 27 POP DI ! 28 POP SI ! 29 POP CX ! 30 RET ! 31.SECT .DATA ! 32mesg1: .ASCIZ "Have a look\n" ! 33mesg2: .ASCIZ "qrst\n" ! 34_EXIT = 1 ! seven system call numbers_READ = 3_WRITE = 4_OPEN = 5_CLOSE = 6_CREAT = 8_LSEEK = 19_GETCHAR = 117 ! five system subroutine numbers_SPRINTF = 121_PUTCHAR = 122_SSCANF = 125_PRINTF = 127STDIN = 0 ! three initially opened file descriptorsSTDOUT = 1STDERR = 2.SECT .TEXT ! Definition of section header labelsTxtSecHd:.SECT .DATADatSecHd:.SECT .TEXT.SECT .TEXTstpstart: ! 1 PUSH msg1 ! 2 CALL stringpr ! 3 PUSH msg2 ! 4 CALL stringpr ! 5 ADD SP,4 ! 6 PUSH 0 ! 7 PUSH 1 ! 8 SYS ! 9stringpr: ! 10 PUSH CX ! 11 PUSH SI ! 12 PUSH DI ! 13 PUSH BP ! 14 MOV BP,SP ! 15 MOV AX,0 ! 16 MOV DI,10(BP) ! 17 MOV SI,DI ! 18 MOV CX,-1 ! 19 REPNZ SCASB ! 20 ! INC CX ! 21 NOT CX ! 22 DEC CX MOV DI,strpribf ! 23 PUSH CX ! 24 PUSH DI ! 25 PUSH STDOUT ! 26 PUSH _WRITE ! 27 REP MOVSB ! 28 STOSB ! 29 SYS ! 30 MOV SP,BP ! 31 POP BP ! 32 POP DI ! 33 POP SI ! 34 POP CX ! 35 RET ! 36.SECT .DATA ! 37.SECT .BSS ! 38strpribf: ! 39 .SPACE 88 ! 40.SECT .DATA ! 41msg1: .ASCIZ "Look here msg1\n" ! 42msg2: .ASCIZ "And msg 2\n" ! 43
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -