我正在努力创建函数并在汇编中调用它们。
函数<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'tumy'); [tumy is the database name]
define('DB_USER','root');
define('DB_PASSWORD','');
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
function newUser()
{
$username = $_POST['username'];
$password = $_POST['password'];
$name = $_POST['name'];
$telNo = $_POST['telno']; [telno refers to telephone number]
$emailAddress = $_POST['email'];
$query = "INSERT INTO 'customer' (username,password,name,telNo,emailAddress) VALUES ('$username','$password','$name','$telNo','$emailAddress')";
$data = mysql_query($query) or die(mysql_error());
if($data) {
echo "YOUR REGISTRATION IS COMPLETED";
}
}
function SignUp()
{
if(empty($_POST['uname']))
{
$query = mysql_query("SELECT * FROM customer WHERE username = '$_POST[username]' AND password = '$_POST[password]'") or die(mysql_error());
if(!$row = mysql_fetch_array($query) or die("SORRY.YOU ARE ALREADY REGISTERED USER.".mysql_error()))
{
newUser();
}
}
}
if(isset($_POST['submit']))
{
SignUp();
}
?>
应该从gfx_draw_h(color, x_1, y_1, x_2)
到(x_1, y_1)
画一条线,但我无法得到(x_2, y_1)
的值来与x_2
内的当前位置进行比较{ {1}}。
另外,另一段代码是否正确(没有堆栈损坏)?
这是我的代码:
gfx_draw_h.repeat
答案 0 :(得分:2)
add esp, 16
由于这是16位代码,因此在堆栈上推送4个参数只需要弹出8个字节。
gfx_draw_h:
pop ax ; color
pop cx ; x
pop dx ; y
由于 gfx_draw_h 是一个子程序(它是call
ed),因此堆栈上有一个返回地址。你的第一个pop ax
删除了这个!您可以写下以下内容:
gfx_draw_h:
mov bp, sp
mov ax, [bp+2] ;color
mov cx, [bp+4] ;x
mov dx, [bp+6] ;y
遵循此逻辑更改问题行(不要使用EBP!):
cmp cx, [bp + 8] ; !!! THIS IS THE ISSUE !!!