ipc3.asm

来自「<虚拟机的设计与实现>一书中hec虚拟机的源代码」· 汇编 代码 · 共 112 行

ASM
112
字号
#ipc3.asm---------------------------------------------
.PB main
.PV message    -32
.PV ipaddr     -64

#allocate local storage on stack
PUSHQ $FP
MOV $FP,$SP
LQI $R7,64
SUB $SP,$SP,$R7

#set the ipaddress 
LAI $R10,$FP,ipaddr
MOV $R14,$R10
LBI $R2,1

LBI $R1,'1'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'2'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'7'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'.'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'0'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'.'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'0'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'.'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'1'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,0
SB  $R1,$R10

#set the message contents ( all 7 bytes of it, woo hoo! ) 
LAI $R10,$FP,message
MOV $R15,$R10
LBI $R2,1

LBI $R1,'h'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'e'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'l'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'l'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'o'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,'!'
SB  $R1,$R10
ADD $R10,$R10,$R2

LBI $R1,0
SB  $R1,$R10

#create the client socket
MOV $R2,$R14
LQI $R3,30000
LQI $R1,2
INT 10
MOV $R16,$R4

#send some data
MOV $R2,$R16
MOV $R3,$R15
LQI $R4,7
LQI $R1,4
INT 10

#shut the client socket down
MOV $R2,$R16
LQI $R1,3
INT 10

#reclaim local storage
MOV $SP,$FP
POPQ $FP

HALT
.PE

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?